home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 April: Mac OS SDK / Dev.CD Apr 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / OCEAuthDir.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  199.2 KB  |  5,119 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        OCEAuthDir.a
  3. ;
  4. ;    Contains:    Apple Open Collaboration Environment Authentication Interfaces.
  5. ;
  6. ;    Version:    Technology:    AOCE Toolbox 1.02
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__OCEAUTHDIR__') = 'UNDEFINED' THEN
  21. __OCEAUTHDIR__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  25.     include 'Events.a'
  26.     ENDIF
  27. ;        include 'Types.a'                                            ;
  28. ;            include 'ConditionalMacros.a'                            ;
  29. ;        include 'Quickdraw.a'                                        ;
  30. ;            include 'MixedMode.a'                                    ;
  31. ;            include 'QuickdrawText.a'                                ;
  32. ;        include 'OSUtils.a'                                        ;
  33. ;            include 'Memory.a'                                        ;
  34.  
  35.     IF &TYPE('__NOTIFICATION__') = 'UNDEFINED' THEN
  36.     include 'Notification.a'
  37.     ENDIF
  38.  
  39.     IF &TYPE('__APPLEEVENTS__') = 'UNDEFINED' THEN
  40.     include 'AppleEvents.a'
  41.     ENDIF
  42. ;        include 'Errors.a'                                            ;
  43. ;        include 'EPPC.a'                                            ;
  44. ;            include 'AppleTalk.a'                                    ;
  45. ;            include 'Files.a'                                        ;
  46. ;                include 'Finder.a'                                    ;
  47. ;            include 'PPCToolbox.a'                                    ;
  48. ;            include 'Processes.a'                                    ;
  49.  
  50.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  51.     include 'AppleTalk.a'
  52.     ENDIF
  53.  
  54.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  55.     include 'Files.a'
  56.     ENDIF
  57.  
  58.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  59.     include 'OSUtils.a'
  60.     ENDIF
  61.  
  62.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  63.     include 'Types.a'
  64.     ENDIF
  65.  
  66.     IF &TYPE('__OCE__') = 'UNDEFINED' THEN
  67.     include 'OCE.a'
  68.     ENDIF
  69. ;        include 'Aliases.a'                                        ;
  70. ;        include 'Script.a'                                            ;
  71. ;            include 'IntlResources.a'                                ;
  72.  
  73. kRC4KeySizeInBytes                EQU        8                    ; size of an RC4 key 
  74. kRefNumUnknown                    EQU        0
  75.  
  76. kEnumDistinguishedNameBit        EQU        0
  77. kEnumAliasBit                    EQU        1
  78. kEnumPseudonymBit                EQU        2
  79. kEnumDNodeBit                    EQU        3
  80. kEnumInvisibleBit                EQU        4
  81.  
  82. ; Values of DirEnumChoices 
  83. kEnumDistinguishedNameMask        EQU        1
  84. kEnumAliasMask                    EQU        2
  85. kEnumPseudonymMask                EQU        4
  86. kEnumDNodeMask                    EQU        8
  87. kEnumInvisibleMask                EQU        16
  88. kEnumAllMask                    EQU        31
  89.  
  90. ; typedef unsigned long     DirEnumChoices
  91. ; Values of DirSortOption 
  92.  
  93. kSortByName                        EQU        0
  94. kSortByType                        EQU        1
  95.  
  96. ; Values of DirSortDirection 
  97. kSortForwards                    EQU        0
  98. kSortBackwards                    EQU        1
  99.  
  100. ; Values of DirMatchWith 
  101. kMatchAll                        EQU        0
  102. kExactMatch                        EQU        1
  103. kBeginsWith                        EQU        2
  104. kEndingWith                        EQU        3
  105. kContaining                        EQU        4
  106.  
  107. ; typedef unsigned char     DirMatchWith
  108.  
  109. kCurrentOCESortVersion            EQU        1
  110.  
  111. ;  Access controls are implemented on three levels:
  112. ; *      DNode, Record, and Attribute Type levels
  113. ; *  Some access control bits apply to the container itself, and some apply to its contents.
  114. ; *
  115. ; *  The Catalog Toolbox supports six functions.  These calls are:
  116. ; *  DSGetDNodeAccessControl : to get Access Controls at the DNode level
  117. ; *    DSGetRecordAccessControl  : to get Access Controls at the record level
  118. ; *  DSGetAttributeAccessControl : to get Access Privileges at the attribute type level
  119. ; * 
  120. ; *  The GetXXXAccessControl calls will return access control masks for various categories
  121. ; *  of users.  Please refer to the access control document for a description of the
  122. ; *  categories of users.  In general these are:
  123. ; *      ThisRecordOwner         - means the identity of the record itself
  124. ; *      Friends                  - means any one of the assigned friends for the record
  125. ; *      AuthenticatedInDNode     - means any valid user that is an authenticated entity
  126. ; *          in the DNode in which this record is located
  127. ; *      AuthenticatedInDirectory - means any valid authenticated catalog user
  128. ; *      Guest                      - means an unauthenticated user.
  129. ; *  Bit masks for various permitted access controls are defined below.
  130. ; *
  131. ; *  GetXXXAccessControl calls will return access control masks for various categories of
  132. ; *  users for this record. In addition they also return the level of access controls
  133. ; *  that the user (who is making the GetXXXAccessControl call) has for the DNode,
  134. ; *  record, or attribute type.
  135. ; *
  136. ; *  For records, the access control granted will be minimum of the DNode access
  137. ; *  control and record access control masks.  For example, to add an attribute type to a
  138. ; *  record, a user must have access control kCreateAttributeTypes at the record and
  139. ; *  DNode levels.  Similarly, at the attribute type level, access controls will be the
  140. ; *  minimum of the DNode, record, and attribute type access controls.
  141. ; *
  142. ; *  
  143. ; access privileges bit numbers 
  144. kSeeBit                            EQU        0
  145. kAddBit                            EQU        1
  146. kDeleteBit                        EQU        2
  147. kChangeBit                        EQU        3
  148. kRenameBit                        EQU        4
  149. kChangePrivsBit                    EQU        5
  150. kSeeFoldersBit                    EQU        6
  151.  
  152. ; Values of AccessMask 
  153. kSeeMask                        EQU        1
  154. kAddMask                        EQU        2
  155. kDeleteMask                        EQU        4
  156. kChangeMask                        EQU        8
  157. kRenameMask                        EQU        16
  158. kChangePrivsMask                EQU        32
  159. kSeeFoldersMask                    EQU        64
  160.  
  161. kAllPrivs                        EQU        127
  162. kNoPrivs                        EQU        0
  163.  
  164. ;
  165. ;
  166. ;kSupportsDNodeNumberBit:
  167. ;If this bit is set, a DNode can be referenced using DNodeNumbers. 
  168. ;RecordLocationInfo can be specified using DNodeNumber and PathName component can be nil. 
  169. ;If this bit is not set, a DNode can be referenced only by PathName to the DNode. In the 
  170. ;later case DNodeNumber component inside record location info must be set to zero.
  171. ;
  172. ;kSupportsRecordCreationIDBit:
  173. ;If this bit is set, a record can be referenced by specifying CreationID 
  174. ;in most catalog manager calls. If this bit is not set recordName and recordType are 
  175. ;required in the recordID specification for all catalog manager calls.
  176. ;
  177. ;kSupportsAttributeCreationIDBit:
  178. ;If this bit is set, an attribute value can be obtained by specifying it's 
  179. ;CreationID in Lookup call staring point and also can be used in operations 
  180. ;like DeleteAttributeValue and ChangeAttributeValue an Attribute can be 
  181. ;specified by AttributeType and CreationID.
  182. ;
  183. ;*************************************************************************
  184. ;Implicit assumption with creationID's and dNodeNumbers are, when supported
  185. ;they are persistent and will preserved across boots and life of the system.
  186. ;*************************************************************************
  187. ;
  188. ;Following three bits are for determining the sort order in enumeration.
  189. ;kSupportsMatchAllBit:
  190. ;If this bit is set, enumeration of all the records is supported
  191. ;
  192. ;kSupportsBeginsWithBit:
  193. ;If this bit is set, enumeration of records matching prefix (e.g. Begin with abc)
  194. ;is supported
  195. ;
  196. ;kSupportsExactMatchBit:
  197. ;If this bit is set, existence of a record matching exact matchNameString and recordType
  198. ;is supported.
  199. ;
  200. ;kSupportsEndsWithBit:
  201. ;If this bit is set, enumeration of records matching suffix (e.g. end with abc)
  202. ;is supported.
  203. ;
  204. ;kSupportsContainsBit:
  205. ;If this bit is set, enumeration of records containing a matchNameString (e.g. containing abc)
  206. ;is supported
  207. ;
  208. ;
  209. ;Implicit assumption in all these is, a record type can be specified either as one of the above or
  210. ;a type list(more then one) to match exact type.
  211. ;The Following four bits will indicate sort ordering in enumeration.
  212. ;
  213. ;kSupportsOrderedEnumerationBit:
  214. ;If this bit is set, Enumerated records or in some order possibly in name order.
  215. ;
  216. ;kCanSupportNameOrderBit:
  217. ;If this is set, catalog will support sortbyName option in Enumerate.
  218. ;
  219. ;kCanSupportTypeOrderBit:
  220. ;If this bit is set, catalog will support sortbyType option in enumearte.
  221. ;
  222. ;kSupportSortBackwardsBit:
  223. ;If this bit is set, catalog supports backward sorting.
  224. ;
  225. ;kSupportIndexRatioBit:
  226. ;If this bit is set, it indicates that enumeration will return approximate position
  227. ;of a record (percentile) among all records.
  228. ;
  229. ;kSupportsEnumerationContinueBit:
  230. ;If this bit is set, catalog supports enumeration continue.
  231. ;
  232. ;kSupportsLookupContinueBit:
  233. ;If this bit is set, catalog supports lookup continue.
  234. ;
  235. ;kSupportsEnumerateAttributeTypeContinueBit:
  236. ;If this bit is set, catalog supports EnumerateAttributeType continue.
  237. ;
  238. ;kSupportsEnumeratePseudonymContinueBit:
  239. ;If this bit is set, catalog supports EnumeratePseudonym continue.
  240. ;
  241. ;kSupportsAliasesBit:
  242. ;If this bit is set, catalog supports create/delte/enumerate 
  243. ;of Alias Records.
  244. ;
  245. ;kSupportPseudonymBit: 
  246. ;If this bit is set, catalog supports create/delte/enumerate of 
  247. ;pseudonyms for a record.
  248. ;
  249. ;kSupportsPartialPathNameBit:
  250. ;If this bit is set, catalog nodes can be specified using DNodeNumber of a 
  251. ;intermediate DNode and a partial name starting from that DNode to the intended 
  252. ;DNode.
  253. ;
  254. ;kSupportsAuthenticationBit:
  255. ;If this bit is set, catalog supports authentication manager calls.
  256. ;
  257. ;kSupportsProxiesBit:
  258. ;If this bit is set, catalog supports proxy related calls in authentication manager. 
  259. ;
  260. ;kSupportsFindRecordBit:
  261. ;If this bit is set, catalog supports find record call.
  262. ;
  263. ;Bits and corresponding masks are as defined below.
  264. ;
  265. kSupportsDNodeNumberBit            EQU        0
  266. kSupportsRecordCreationIDBit    EQU        1
  267. kSupportsAttributeCreationIDBit    EQU        2
  268. kSupportsMatchAllBit            EQU        3
  269. kSupportsBeginsWithBit            EQU        4
  270. kSupportsExactMatchBit            EQU        5
  271. kSupportsEndsWithBit            EQU        6
  272. kSupportsContainsBit            EQU        7
  273. kSupportsOrderedEnumerationBit    EQU        8
  274. kCanSupportNameOrderBit            EQU        9
  275. kCanSupportTypeOrderBit            EQU        10
  276. kSupportSortBackwardsBit        EQU        11
  277. kSupportIndexRatioBit            EQU        12
  278. kSupportsEnumerationContinueBit    EQU        13
  279. kSupportsLookupContinueBit        EQU        14
  280. kSupportsEnumerateAttributeTypeContinueBit EQU        15
  281. kSupportsEnumeratePseudonymContinueBit EQU        16
  282. kSupportsAliasesBit                EQU        17
  283. kSupportsPseudonymsBit            EQU        18
  284. kSupportsPartialPathNamesBit    EQU        19
  285. kSupportsAuthenticationBit        EQU        20
  286. kSupportsProxiesBit                EQU        21
  287. kSupportsFindRecordBit            EQU        22
  288.  
  289. ; values of DirGestalt 
  290. kSupportsDNodeNumberMask        EQU        1
  291. kSupportsRecordCreationIDMask    EQU        2
  292. kSupportsAttributeCreationIDMask EQU        4
  293. kSupportsMatchAllMask            EQU        8
  294. kSupportsBeginsWithMask            EQU        16
  295. kSupportsExactMatchMask            EQU        32
  296. kSupportsEndsWithMask            EQU        64
  297. kSupportsContainsMask            EQU        128
  298. kSupportsOrderedEnumerationMask    EQU        256
  299. kCanSupportNameOrderMask        EQU        512
  300. kCanSupportTypeOrderMask        EQU        1024
  301. kSupportSortBackwardsMask        EQU        2048
  302. kSupportIndexRatioMask            EQU        4096
  303. kSupportsEnumerationContinueMask EQU        8192
  304. kSupportsLookupContinueMask        EQU        16384
  305. kSupportsEnumerateAttributeTypeContinueMask EQU        32768
  306. kSupportsEnumeratePseudonymContinueMask EQU        65536
  307. kSupportsAliasesMask            EQU        131072
  308. kSupportsPseudonymsMask            EQU        262144
  309. kSupportsPartialPathNamesMask    EQU        524288
  310. kSupportsAuthenticationMask        EQU        1048576
  311. kSupportsProxiesMask            EQU        2097152
  312. kSupportsFindRecordMask            EQU        4194304
  313.  
  314. ; Values of AuthLocalIdentityOp 
  315. kAuthLockLocalIdentityOp        EQU        1
  316. kAuthUnlockLocalIdentityOp        EQU        2
  317. kAuthLocalIdentityNameChangeOp    EQU        3
  318.  
  319. ; Values of AuthLocalIdentityLockAction 
  320. kAuthLockPending                EQU        1
  321. kAuthLockWillBeDone                EQU        2
  322.  
  323. ; Values of AuthNotifications 
  324. kNotifyLockBit                    EQU        0
  325. kNotifyUnlockBit                EQU        1
  326. kNotifyNameChangeBit            EQU        2
  327.  
  328. kNotifyLockMask                    EQU        1
  329. kNotifyUnlockMask                EQU        2
  330. kNotifyNameChangeMask            EQU        4
  331.  
  332. kPersonalDirectoryFileCreator    EQU        'kl03'
  333. kPersonalDirectoryFileType        EQU        'pabt'
  334. kBusinessCardFileType            EQU        'bust'
  335. kDirectoryFileType                EQU        'dirt'
  336. kDNodeFileType                    EQU        'dnod'
  337. kDirsRootFileType                EQU        'drtt'
  338. kRecordFileType                    EQU        'rcrd'
  339.  
  340. ; typedef unsigned short     DirSortOption
  341. ; typedef unsigned short     DirSortDirection
  342. ; typedef unsigned long     AccessMask
  343. ; typedef unsigned long     DirGestalt
  344. ; typedef unsigned long     AuthLocalIdentityOp
  345. ; typedef unsigned long     AuthLocalIdentityLockAction
  346. ; typedef unsigned long     AuthNotifications
  347. DNodeID                 RECORD    0
  348. dNodeNumber                 ds.l   1        ; offset: $0 (0)        ; dNodenumber  
  349. reserved1                 ds.l   1        ; offset: $4 (4)
  350. name                     ds.l   1        ; offset: $8 (8)
  351. reserved2                 ds.l   1        ; offset: $C (12)
  352. sizeof                     EQU *            ; size:   $10 (16)
  353.                         ENDR
  354.  
  355. ; typedef struct DNodeID     DNodeID
  356. DirEnumSpec             RECORD    0
  357. enumFlag                 ds.l   1        ; offset: $0 (0)
  358. indexRatio                 ds.w   1        ; offset: $4 (4)        ; Approx Record Position between 1 and 100 If supported, 0 If not supported 
  359. recordIdentifier         ds.l   4        ; offset: $6 (6)
  360.                          ORG 6
  361. dNodeIdentifier             ds     DNodeID    ; offset: $6 (6)
  362.                          ORG 22
  363. sizeof                     EQU *            ; size:   $16 (22)
  364.                         ENDR
  365.  
  366. ; typedef struct DirEnumSpec  DirEnumSpec
  367. DirMetaInfo             RECORD    0
  368. info                     ds.l   4        ; offset: $0 (0)
  369. sizeof                     EQU *            ; size:   $10 (16)
  370.                         ENDR
  371.  
  372. ; typedef struct DirMetaInfo  DirMetaInfo
  373. SLRV                     RECORD    0
  374. script                     ds.w   1        ; offset: $0 (0)        ;   Script code in which entries are sorted 
  375. language                 ds.w   1        ; offset: $2 (2)        ;   Language code in which entries are sorted 
  376. regionCode                 ds.w   1        ; offset: $4 (4)        ;   Region code in which entries are sorted 
  377. version                     ds.w   1        ; offset: $6 (6)        ;  version of oce sorting software 
  378. sizeof                     EQU *            ; size:   $8 (8)
  379.                         ENDR
  380.  
  381. ; typedef struct SLRV         SLRV
  382. ; Catalog types and operations 
  383. ; unique identifier for an identity 
  384. ; typedef unsigned long     AuthIdentity
  385. ; Umbrella LocalIdentity 
  386. ; typedef AuthIdentity         LocalIdentity
  387. ; A DES key is 8 bytes of data 
  388. DESKey                     RECORD    0
  389. desA                     ds.l   1        ; offset: $0 (0)
  390. desB                     ds.l   1        ; offset: $4 (4)
  391. sizeof                     EQU *            ; size:   $8 (8)
  392.                         ENDR
  393.  
  394. ; typedef struct DESKey     DESKey
  395. ; typedef Byte                 RC4Key[kRC4KeySizeInBytes]
  396. ; typedef unsigned long     AuthKeyType
  397. ; key type followed by its data 
  398. AuthKey                 RECORD    0
  399. keyType                     ds.l   1        ; offset: $0 (0)
  400. des                         ds     DESKey    ; offset: $4 (4)
  401.                          ORG 4
  402. rc4                         ds.l   2        ; offset: $4 (4)
  403.                          ORG 12
  404. sizeof                     EQU *            ; size:   $C (12)
  405.                         ENDR
  406.  
  407. ; typedef struct AuthKey     AuthKey
  408. ; typedef AuthKey             *AuthKeyPtr
  409. ; typedef union AuthParamBlock  AuthParamBlock
  410. ; typedef AuthParamBlock     *AuthParamBlockPtr
  411. ;
  412. ;This header is common to all the parameter blocks.  Clients should not directly
  413. ;touch any of these fields except ioCompletion.  ioCompletion is the
  414. ;completion routine pointer for async calls; it is ignored for sync calls.
  415. ;ioResult is the result code from the call.
  416. ;
  417. ;****************************************************************************
  418. ;
  419. ;
  420. ;        Authentication Manager operations 
  421. ;
  422. ;****************************************************************************
  423. ;
  424. ;kAuthResolveCreationID:
  425. ;userRecord will contain the user information whose creationID has to be
  426. ;returned. A client must make this call when he does not know the creaitionID.
  427. ;The creationID must be set to nil before making the call. The server will attempt
  428. ;to match the recordid's in the data base which match the user name and
  429. ;type in the record.  Depending on number of matchings, following
  430. ;results will be returned.
  431. ;Exactly One Match : CreationID in RecordID and also in buffer (if buffer is given)
  432. ;totalMatches = actualMatches = 1.
  433. ;> 1 Match:
  434. ;    Buffer is Large Enough:
  435. ;    totalMatches = actualMatches
  436. ;    Buffer will contain all the CIDs, kOCEAmbiguousMatches error.
  437. ;> 1 Match:
  438. ;    Buffer is not Large Enough:
  439. ;    totalMatches > actualMatches
  440. ;    Buffer will contain all the CIDs (equal to actualMatches), daMoreDataError error.
  441. ;0 Matches:
  442. ; kOCENoSuchRecord error
  443. ;
  444. AuthResolveCreationIDPB RECORD    0
  445. qLink                     ds.l   1        ; offset: $0 (0)
  446. reserved1                 ds.l   1        ; offset: $4 (4)
  447. reserved2                 ds.l   1        ; offset: $8 (8)
  448. ioCompletion             ds.l   1        ; offset: $C (12)
  449. ioResult                 ds.w   1        ; offset: $10 (16)
  450. saveA5                     ds.l   1        ; offset: $12 (18)
  451. reqCode                     ds.w   1        ; offset: $16 (22)
  452. reserved                 ds.l   2        ; offset: $18 (24)
  453. serverHint                 ds     AddrBlock ; offset: $20 (32)
  454. dsRefNum                 ds.w   1        ; offset: $24 (36)
  455. callID                     ds.l   1        ; offset: $26 (38)
  456. identity                 ds.l   1        ; offset: $2A (42)
  457. gReserved1                 ds.l   1        ; offset: $2E (46)
  458. gReserved2                 ds.l   1        ; offset: $32 (50)
  459. gReserved3                 ds.l   1        ; offset: $36 (54)
  460. clientData                 ds.l   1        ; offset: $3A (58)
  461. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  462. bufferLength             ds.l   1        ; offset: $42 (66)        ;  --> Buffer Size to hold duplicate Info 
  463. buffer                     ds.l   1        ; offset: $46 (70)        ;  --> Buffer  to hold duplicate Info 
  464. totalMatches             ds.l   1        ; offset: $4A (74)        ; <--  Total Number of matching names found 
  465. actualMatches             ds.l   1        ; offset: $4E (78)        ; <--  Number of matches returned in the buffer 
  466. sizeof                     EQU *            ; size:   $52 (82)
  467.                         ENDR
  468.  
  469. ; typedef struct AuthResolveCreationIDPB  AuthResolveCreationIDPB
  470. ;
  471. ;kAuthBindSpecificIdentity:
  472. ;userRecord will contain the user information whose identity has to be
  473. ;verified. userKey will contain the userKey. An Identity is returned which
  474. ;binds the key and the userRecord. The identity returned can be used in the 'identity'
  475. ;field in the header portion (AuthParamHeader) for authenticating the Catalog and
  476. ;Authentication manager calls.
  477. ;
  478. AuthBindSpecificIdentityPB RECORD    0
  479. qLink                     ds.l   1        ; offset: $0 (0)
  480. reserved1                 ds.l   1        ; offset: $4 (4)
  481. reserved2                 ds.l   1        ; offset: $8 (8)
  482. ioCompletion             ds.l   1        ; offset: $C (12)
  483. ioResult                 ds.w   1        ; offset: $10 (16)
  484. saveA5                     ds.l   1        ; offset: $12 (18)
  485. reqCode                     ds.w   1        ; offset: $16 (22)
  486. reserved                 ds.l   2        ; offset: $18 (24)
  487. serverHint                 ds     AddrBlock ; offset: $20 (32)
  488. dsRefNum                 ds.w   1        ; offset: $24 (36)
  489. callID                     ds.l   1        ; offset: $26 (38)
  490. identity                 ds.l   1        ; offset: $2A (42)
  491. gReserved1                 ds.l   1        ; offset: $2E (46)
  492. gReserved2                 ds.l   1        ; offset: $32 (50)
  493. gReserved3                 ds.l   1        ; offset: $36 (54)
  494. clientData                 ds.l   1        ; offset: $3A (58)
  495. userIdentity             ds.l   1        ; offset: $3E (62)        ; <--  binding identity 
  496. userRecord                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name(Record) of the user 
  497. userKey                     ds.l   1        ; offset: $46 (70)        ;  --> OCE Key for the user 
  498. sizeof                     EQU *            ; size:   $4A (74)
  499.                         ENDR
  500.  
  501. ; typedef struct AuthBindSpecificIdentityPB  AuthBindSpecificIdentityPB
  502. ;
  503. ;kAuthUnbindSpecificIdentity:
  504. ;This call will unbind the userRecord and key which were bind earlier.
  505. ;
  506. AuthUnbindSpecificIdentityPB RECORD    0
  507. qLink                     ds.l   1        ; offset: $0 (0)
  508. reserved1                 ds.l   1        ; offset: $4 (4)
  509. reserved2                 ds.l   1        ; offset: $8 (8)
  510. ioCompletion             ds.l   1        ; offset: $C (12)
  511. ioResult                 ds.w   1        ; offset: $10 (16)
  512. saveA5                     ds.l   1        ; offset: $12 (18)
  513. reqCode                     ds.w   1        ; offset: $16 (22)
  514. reserved                 ds.l   2        ; offset: $18 (24)
  515. serverHint                 ds     AddrBlock ; offset: $20 (32)
  516. dsRefNum                 ds.w   1        ; offset: $24 (36)
  517. callID                     ds.l   1        ; offset: $26 (38)
  518. identity                 ds.l   1        ; offset: $2A (42)
  519. gReserved1                 ds.l   1        ; offset: $2E (46)
  520. gReserved2                 ds.l   1        ; offset: $32 (50)
  521. gReserved3                 ds.l   1        ; offset: $36 (54)
  522. clientData                 ds.l   1        ; offset: $3A (58)
  523. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity to be deleted 
  524. sizeof                     EQU *            ; size:   $42 (66)
  525.                         ENDR
  526.  
  527. ; typedef struct AuthUnbindSpecificIdentityPB  AuthUnbindSpecificIdentityPB
  528. ;
  529. ;kAuthGetSpecificIdentityInfo:
  530. ;This call will return the userRecord for the given identity. Note: key is not
  531. ;returned because this would compromise security.
  532. ;
  533. AuthGetSpecificIdentityInfoPB RECORD    0
  534. qLink                     ds.l   1        ; offset: $0 (0)
  535. reserved1                 ds.l   1        ; offset: $4 (4)
  536. reserved2                 ds.l   1        ; offset: $8 (8)
  537. ioCompletion             ds.l   1        ; offset: $C (12)
  538. ioResult                 ds.w   1        ; offset: $10 (16)
  539. saveA5                     ds.l   1        ; offset: $12 (18)
  540. reqCode                     ds.w   1        ; offset: $16 (22)
  541. reserved                 ds.l   2        ; offset: $18 (24)
  542. serverHint                 ds     AddrBlock ; offset: $20 (32)
  543. dsRefNum                 ds.w   1        ; offset: $24 (36)
  544. callID                     ds.l   1        ; offset: $26 (38)
  545. identity                 ds.l   1        ; offset: $2A (42)
  546. gReserved1                 ds.l   1        ; offset: $2E (46)
  547. gReserved2                 ds.l   1        ; offset: $32 (50)
  548. gReserved3                 ds.l   1        ; offset: $36 (54)
  549. clientData                 ds.l   1        ; offset: $3A (58)
  550. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of initiator 
  551. userRecord                 ds.l   1        ; offset: $42 (66)        ; <--  OCE name(Record) of the user 
  552. sizeof                     EQU *            ; size:   $46 (70)
  553.                         ENDR
  554.  
  555. ; typedef struct AuthGetSpecificIdentityInfoPB  AuthGetSpecificIdentityInfoPB
  556. ;
  557. ;kAuthAddKey:
  558. ;userRecord will contain the user information whose identity has to be
  559. ;created. userKey will point to the key to be created. password points to
  560. ;an RString containing the password used to generate the key.
  561. ;
  562. AuthAddKeyPB             RECORD    0
  563. qLink                     ds.l   1        ; offset: $0 (0)
  564. reserved1                 ds.l   1        ; offset: $4 (4)
  565. reserved2                 ds.l   1        ; offset: $8 (8)
  566. ioCompletion             ds.l   1        ; offset: $C (12)
  567. ioResult                 ds.w   1        ; offset: $10 (16)
  568. saveA5                     ds.l   1        ; offset: $12 (18)
  569. reqCode                     ds.w   1        ; offset: $16 (22)
  570. reserved                 ds.l   2        ; offset: $18 (24)
  571. serverHint                 ds     AddrBlock ; offset: $20 (32)
  572. dsRefNum                 ds.w   1        ; offset: $24 (36)
  573. callID                     ds.l   1        ; offset: $26 (38)
  574. identity                 ds.l   1        ; offset: $2A (42)
  575. gReserved1                 ds.l   1        ; offset: $2E (46)
  576. gReserved2                 ds.l   1        ; offset: $32 (50)
  577. gReserved3                 ds.l   1        ; offset: $36 (54)
  578. clientData                 ds.l   1        ; offset: $3A (58)
  579. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  580. userKey                     ds.l   1        ; offset: $42 (66)        ; <--  OCE Key for the user 
  581. password                 ds.l   1        ; offset: $46 (70)        ;  --> Pointer to password string 
  582. sizeof                     EQU *            ; size:   $4A (74)
  583.                         ENDR
  584.  
  585. ; typedef struct AuthAddKeyPB  AuthAddKeyPB
  586. ;
  587. ;kAuthChangeKey:
  588. ;userRecord will contain the user information whose identity has to be
  589. ;created. userKey will point to the key to be created. password points to
  590. ;an RString containing the password used to generate the key.
  591. ;
  592. AuthChangeKeyPB         RECORD    0
  593. qLink                     ds.l   1        ; offset: $0 (0)
  594. reserved1                 ds.l   1        ; offset: $4 (4)
  595. reserved2                 ds.l   1        ; offset: $8 (8)
  596. ioCompletion             ds.l   1        ; offset: $C (12)
  597. ioResult                 ds.w   1        ; offset: $10 (16)
  598. saveA5                     ds.l   1        ; offset: $12 (18)
  599. reqCode                     ds.w   1        ; offset: $16 (22)
  600. reserved                 ds.l   2        ; offset: $18 (24)
  601. serverHint                 ds     AddrBlock ; offset: $20 (32)
  602. dsRefNum                 ds.w   1        ; offset: $24 (36)
  603. callID                     ds.l   1        ; offset: $26 (38)
  604. identity                 ds.l   1        ; offset: $2A (42)
  605. gReserved1                 ds.l   1        ; offset: $2E (46)
  606. gReserved2                 ds.l   1        ; offset: $32 (50)
  607. gReserved3                 ds.l   1        ; offset: $36 (54)
  608. clientData                 ds.l   1        ; offset: $3A (58)
  609. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  610. userKey                     ds.l   1        ; offset: $42 (66)        ; <--  New OCE Key for the user 
  611. password                 ds.l   1        ; offset: $46 (70)        ;  -->Pointer to the new password string 
  612. sizeof                     EQU *            ; size:   $4A (74)
  613.                         ENDR
  614.  
  615. ; typedef struct AuthChangeKeyPB  AuthChangeKeyPB
  616. ;
  617. ;AuthDeleteKey:
  618. ;userRecord will contain the user information whose Key has to be deleted.
  619. ;
  620. AuthDeleteKeyPB         RECORD    0
  621. qLink                     ds.l   1        ; offset: $0 (0)
  622. reserved1                 ds.l   1        ; offset: $4 (4)
  623. reserved2                 ds.l   1        ; offset: $8 (8)
  624. ioCompletion             ds.l   1        ; offset: $C (12)
  625. ioResult                 ds.w   1        ; offset: $10 (16)
  626. saveA5                     ds.l   1        ; offset: $12 (18)
  627. reqCode                     ds.w   1        ; offset: $16 (22)
  628. reserved                 ds.l   2        ; offset: $18 (24)
  629. serverHint                 ds     AddrBlock ; offset: $20 (32)
  630. dsRefNum                 ds.w   1        ; offset: $24 (36)
  631. callID                     ds.l   1        ; offset: $26 (38)
  632. identity                 ds.l   1        ; offset: $2A (42)
  633. gReserved1                 ds.l   1        ; offset: $2E (46)
  634. gReserved2                 ds.l   1        ; offset: $32 (50)
  635. gReserved3                 ds.l   1        ; offset: $36 (54)
  636. clientData                 ds.l   1        ; offset: $3A (58)
  637. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  638. sizeof                     EQU *            ; size:   $42 (66)
  639.                         ENDR
  640.  
  641. ; typedef struct AuthDeleteKeyPB  AuthDeleteKeyPB
  642. ; AuthPasswordToKey: Converts an RString into a key. 
  643. AuthPasswordToKeyPB     RECORD    0
  644. qLink                     ds.l   1        ; offset: $0 (0)
  645. reserved1                 ds.l   1        ; offset: $4 (4)
  646. reserved2                 ds.l   1        ; offset: $8 (8)
  647. ioCompletion             ds.l   1        ; offset: $C (12)
  648. ioResult                 ds.w   1        ; offset: $10 (16)
  649. saveA5                     ds.l   1        ; offset: $12 (18)
  650. reqCode                     ds.w   1        ; offset: $16 (22)
  651. reserved                 ds.l   2        ; offset: $18 (24)
  652. serverHint                 ds     AddrBlock ; offset: $20 (32)
  653. dsRefNum                 ds.w   1        ; offset: $24 (36)
  654. callID                     ds.l   1        ; offset: $26 (38)
  655. identity                 ds.l   1        ; offset: $2A (42)
  656. gReserved1                 ds.l   1        ; offset: $2E (46)
  657. gReserved2                 ds.l   1        ; offset: $32 (50)
  658. gReserved3                 ds.l   1        ; offset: $36 (54)
  659. clientData                 ds.l   1        ; offset: $3A (58)
  660. userRecord                 ds.l   1        ; offset: $3E (62)        ;  --> OCE name(Record) of the user 
  661. key                         ds.l   1        ; offset: $42 (66)        ; <--  
  662. password                 ds.l   1        ; offset: $46 (70)        ;  -->Pointer to the new password string 
  663. sizeof                     EQU *            ; size:   $4A (74)
  664.                         ENDR
  665.  
  666. ; typedef struct AuthPasswordToKeyPB  AuthPasswordToKeyPB
  667. ;
  668. ;kAuthGetCredentials:
  669. ;userRecord will contain the user information whose identity has to be
  670. ;kMailDeletedMask. keyType (e.g. asDESKey) will indicate what type of key has to
  671. ;be deleted.
  672. ;
  673. AuthGetCredentialsPB     RECORD    0
  674. qLink                     ds.l   1        ; offset: $0 (0)
  675. reserved1                 ds.l   1        ; offset: $4 (4)
  676. reserved2                 ds.l   1        ; offset: $8 (8)
  677. ioCompletion             ds.l   1        ; offset: $C (12)
  678. ioResult                 ds.w   1        ; offset: $10 (16)
  679. saveA5                     ds.l   1        ; offset: $12 (18)
  680. reqCode                     ds.w   1        ; offset: $16 (22)
  681. reserved                 ds.l   2        ; offset: $18 (24)
  682. serverHint                 ds     AddrBlock ; offset: $20 (32)
  683. dsRefNum                 ds.w   1        ; offset: $24 (36)
  684. callID                     ds.l   1        ; offset: $26 (38)
  685. identity                 ds.l   1        ; offset: $2A (42)
  686. gReserved1                 ds.l   1        ; offset: $2E (46)
  687. gReserved2                 ds.l   1        ; offset: $32 (50)
  688. gReserved3                 ds.l   1        ; offset: $36 (54)
  689. clientData                 ds.l   1        ; offset: $3A (58)
  690. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of initiator 
  691. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  692. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  693. expiry                     ds.l   1        ; offset: $4A (74)        ; <--> desired/actual expiry 
  694. credentialsLength         ds.l   1        ; offset: $4E (78)        ; <--> max/actual credentials size 
  695. credentials                 ds.l   1        ; offset: $52 (82)        ; <--  buffer where credentials are returned 
  696. sizeof                     EQU *            ; size:   $56 (86)
  697.                         ENDR
  698.  
  699. ; typedef struct AuthGetCredentialsPB  AuthGetCredentialsPB
  700. ;
  701. ;AuthDecryptCredentialsPB:
  702. ;Changes:
  703. ;userKey is changed userIdentity.
  704. ;userRecord is changed to initiatorRecord. User must supply buffer
  705. ;to hold initiatorRecord.
  706. ;agentList has changed to agent. There wil be no call back.
  707. ;User must supply buffer to hold agent Record.
  708. ;An additional boolean parameter 'hasAgent' is included.
  709. ;Toolbox will set this if an 'Agent' record is found in the
  710. ;credentials. If RecordIDPtr is 'nil', no agent record will
  711. ;be copied. However user can examine 'hasAgent', If true user
  712. ;can reissue this call with apprpriate buffer for getting a recordID.
  713. ;agent has changed to intermediary.  User must supply buffer to hold 
  714. ;intermediary Record.  The toolbox will set 'hasIntermediary' if an
  715. ;'intermediary' record is found in the credentials. 
  716. ;
  717. AuthDecryptCredentialsPB RECORD    0
  718. qLink                     ds.l   1        ; offset: $0 (0)
  719. reserved1                 ds.l   1        ; offset: $4 (4)
  720. reserved2                 ds.l   1        ; offset: $8 (8)
  721. ioCompletion             ds.l   1        ; offset: $C (12)
  722. ioResult                 ds.w   1        ; offset: $10 (16)
  723. saveA5                     ds.l   1        ; offset: $12 (18)
  724. reqCode                     ds.w   1        ; offset: $16 (22)
  725. reserved                 ds.l   2        ; offset: $18 (24)
  726. serverHint                 ds     AddrBlock ; offset: $20 (32)
  727. dsRefNum                 ds.w   1        ; offset: $24 (36)
  728. callID                     ds.l   1        ; offset: $26 (38)
  729. identity                 ds.l   1        ; offset: $2A (42)
  730. gReserved1                 ds.l   1        ; offset: $2E (46)
  731. gReserved2                 ds.l   1        ; offset: $32 (50)
  732. gReserved3                 ds.l   1        ; offset: $36 (54)
  733. clientData                 ds.l   1        ; offset: $3A (58)
  734. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> user's Identity 
  735. initiatorRecord             ds.l   1        ; offset: $42 (66)        ; <--  OCE name of the initiator 
  736. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  737. expiry                     ds.l   1        ; offset: $4A (74)        ; <--  credentials expiry time 
  738. credentialsLength         ds.l   1        ; offset: $4E (78)        ;  --> actual credentials size 
  739. credentials                 ds.l   1        ; offset: $52 (82)        ;  --> credentials to be decrypted 
  740. issueTime                 ds.l   1        ; offset: $56 (86)        ; <--  credentials expiry time 
  741. hasIntermediary             ds.b   1        ; offset: $5A (90)        ; <--  if true, An intermediary Record was found in credentials 
  742. filler1                     ds.b   1        ; offset: $5B (91)
  743. intermediary             ds.l   1        ; offset: $5C (92)        ; <--  recordID of the intermediary 
  744. sizeof                     EQU *            ; size:   $60 (96)
  745.                         ENDR
  746.  
  747. ; typedef struct AuthDecryptCredentialsPB  AuthDecryptCredentialsPB
  748. AuthMakeChallengePB     RECORD    0
  749. qLink                     ds.l   1        ; offset: $0 (0)
  750. reserved1                 ds.l   1        ; offset: $4 (4)
  751. reserved2                 ds.l   1        ; offset: $8 (8)
  752. ioCompletion             ds.l   1        ; offset: $C (12)
  753. ioResult                 ds.w   1        ; offset: $10 (16)
  754. saveA5                     ds.l   1        ; offset: $12 (18)
  755. reqCode                     ds.w   1        ; offset: $16 (22)
  756. reserved                 ds.l   2        ; offset: $18 (24)
  757. serverHint                 ds     AddrBlock ; offset: $20 (32)
  758. dsRefNum                 ds.w   1        ; offset: $24 (36)
  759. callID                     ds.l   1        ; offset: $26 (38)
  760. identity                 ds.l   1        ; offset: $2A (42)
  761. gReserved1                 ds.l   1        ; offset: $2E (46)
  762. gReserved2                 ds.l   1        ; offset: $32 (50)
  763. gReserved3                 ds.l   1        ; offset: $36 (54)
  764. clientData                 ds.l   1        ; offset: $3A (58)
  765. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  766. challenge                 ds.l   1        ; offset: $42 (66)        ; <--  Encrypted Challenge 
  767. challengeBufferLength     ds.l   1        ; offset: $46 (70)        ;  ->length of challenge buffer 
  768. challengeLength             ds.l   1        ; offset: $4A (74)        ;  <-length of Encrypted Challenge 
  769. sizeof                     EQU *            ; size:   $4E (78)
  770.                         ENDR
  771.  
  772. ; typedef struct AuthMakeChallengePB  AuthMakeChallengePB
  773. AuthMakeReplyPB         RECORD    0
  774. qLink                     ds.l   1        ; offset: $0 (0)
  775. reserved1                 ds.l   1        ; offset: $4 (4)
  776. reserved2                 ds.l   1        ; offset: $8 (8)
  777. ioCompletion             ds.l   1        ; offset: $C (12)
  778. ioResult                 ds.w   1        ; offset: $10 (16)
  779. saveA5                     ds.l   1        ; offset: $12 (18)
  780. reqCode                     ds.w   1        ; offset: $16 (22)
  781. reserved                 ds.l   2        ; offset: $18 (24)
  782. serverHint                 ds     AddrBlock ; offset: $20 (32)
  783. dsRefNum                 ds.w   1        ; offset: $24 (36)
  784. callID                     ds.l   1        ; offset: $26 (38)
  785. identity                 ds.l   1        ; offset: $2A (42)
  786. gReserved1                 ds.l   1        ; offset: $2E (46)
  787. gReserved2                 ds.l   1        ; offset: $32 (50)
  788. gReserved3                 ds.l   1        ; offset: $36 (54)
  789. clientData                 ds.l   1        ; offset: $3A (58)
  790. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  791. challenge                 ds.l   1        ; offset: $42 (66)        ;  --> Encrypted Challenge 
  792. reply                     ds.l   1        ; offset: $46 (70)        ; <--  Encrypted Reply 
  793. replyBufferLength         ds.l   1        ; offset: $4A (74)        ;  -->length of challenge buffer 
  794. challengeLength             ds.l   1        ; offset: $4E (78)        ;  --> length of Encrypted Challenge 
  795. replyLength                 ds.l   1        ; offset: $52 (82)        ; <--  length of Encrypted Reply 
  796. sizeof                     EQU *            ; size:   $56 (86)
  797.                         ENDR
  798.  
  799. ; typedef struct AuthMakeReplyPB  AuthMakeReplyPB
  800. AuthVerifyReplyPB         RECORD    0
  801. qLink                     ds.l   1        ; offset: $0 (0)
  802. reserved1                 ds.l   1        ; offset: $4 (4)
  803. reserved2                 ds.l   1        ; offset: $8 (8)
  804. ioCompletion             ds.l   1        ; offset: $C (12)
  805. ioResult                 ds.w   1        ; offset: $10 (16)
  806. saveA5                     ds.l   1        ; offset: $12 (18)
  807. reqCode                     ds.w   1        ; offset: $16 (22)
  808. reserved                 ds.l   2        ; offset: $18 (24)
  809. serverHint                 ds     AddrBlock ; offset: $20 (32)
  810. dsRefNum                 ds.w   1        ; offset: $24 (36)
  811. callID                     ds.l   1        ; offset: $26 (38)
  812. identity                 ds.l   1        ; offset: $2A (42)
  813. gReserved1                 ds.l   1        ; offset: $2E (46)
  814. gReserved2                 ds.l   1        ; offset: $32 (50)
  815. gReserved3                 ds.l   1        ; offset: $36 (54)
  816. clientData                 ds.l   1        ; offset: $3A (58)
  817. key                         ds.l   1        ; offset: $3E (62)        ;  --> UnEncrypted SessionKey 
  818. challenge                 ds.l   1        ; offset: $42 (66)        ;  --> Encrypted Challenge 
  819. reply                     ds.l   1        ; offset: $46 (70)        ;  --> Encrypted Reply 
  820. challengeLength             ds.l   1        ; offset: $4A (74)        ;  --> length of Encrypted Challenge 
  821. replyLength                 ds.l   1        ; offset: $4E (78)        ;  --> length of Encrypted Reply 
  822. sizeof                     EQU *            ; size:   $52 (82)
  823.                         ENDR
  824.  
  825. ; typedef struct AuthVerifyReplyPB  AuthVerifyReplyPB
  826. ;
  827. ;kAuthGetUTCTime:
  828. ;RLI will contain a valid RLI for a cluster server.
  829. ;UTC(GMT) time from one of the cluster server will be returned.
  830. ;An 'offSet' from UTC(GMT) to Mac Local Time will also be returned.
  831. ;If RLI is nil Map DA is used to determine UTC(GMT).
  832. ;Mac Local Time = theUTCTime + theUTCOffset.
  833. ;
  834. AuthGetUTCTimePB         RECORD    0
  835. qLink                     ds.l   1        ; offset: $0 (0)
  836. reserved1                 ds.l   1        ; offset: $4 (4)
  837. reserved2                 ds.l   1        ; offset: $8 (8)
  838. ioCompletion             ds.l   1        ; offset: $C (12)
  839. ioResult                 ds.w   1        ; offset: $10 (16)
  840. saveA5                     ds.l   1        ; offset: $12 (18)
  841. reqCode                     ds.w   1        ; offset: $16 (22)
  842. reserved                 ds.l   2        ; offset: $18 (24)
  843. serverHint                 ds     AddrBlock ; offset: $20 (32)
  844. dsRefNum                 ds.w   1        ; offset: $24 (36)
  845. callID                     ds.l   1        ; offset: $26 (38)
  846. identity                 ds.l   1        ; offset: $2A (42)
  847. gReserved1                 ds.l   1        ; offset: $2E (46)
  848. gReserved2                 ds.l   1        ; offset: $32 (50)
  849. gReserved3                 ds.l   1        ; offset: $36 (54)
  850. clientData                 ds.l   1        ; offset: $3A (58)
  851. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI of the Node, whose server's UTC is requested 
  852. theUTCTime                 ds.l   1        ; offset: $42 (66)        ; <--  current UTC(GMT) Time utc seconds since 1/1/1904 
  853. theUTCOffset             ds.l   1        ; offset: $46 (70)        ; <--  offset from UTC(GMT) seconds EAST of Greenwich 
  854. sizeof                     EQU *            ; size:   $4A (74)
  855.                         ENDR
  856.  
  857. ; typedef struct AuthGetUTCTimePB  AuthGetUTCTimePB
  858. ;
  859. ;kAuthMakeProxy:
  860. ;A user represented bu the 'userIdentity' can make a proxy using this call.
  861. ;'recipient' is the RecordID of the recipient whom user is requesting proxy.
  862. ;'intermediary' is the RecordID of the intermediary holding proxy for the user.
  863. ;'firstValid' is time at which proxy becomes valid.
  864. ;'expiry' is the time at which proxy must expire.
  865. ;'proxyLength' will have the length of the buffer pointed by 'proxy' as input.
  866. ;When the call completes, it will hold the actual length of proxy. If the
  867. ;call completes 'kOCEMoreData' error, client can reissue the call with the
  868. ;buffer size as 'proxyLength' returned.
  869. ;expiry is a suggestion, and may be adjusted to be earlier by the ADAP/OCE server.
  870. ;The 'proxy' obtained like this might be used by the 'intermediary' to obtain credentials
  871. ;for the server using TradeProxyForCredentials call.
  872. ;authDataLength and authData are intended for possible future work, but are
  873. ;ignored for now.
  874. ;
  875. AuthMakeProxyPB         RECORD    0
  876. qLink                     ds.l   1        ; offset: $0 (0)
  877. reserved1                 ds.l   1        ; offset: $4 (4)
  878. reserved2                 ds.l   1        ; offset: $8 (8)
  879. ioCompletion             ds.l   1        ; offset: $C (12)
  880. ioResult                 ds.w   1        ; offset: $10 (16)
  881. saveA5                     ds.l   1        ; offset: $12 (18)
  882. reqCode                     ds.w   1        ; offset: $16 (22)
  883. reserved                 ds.l   2        ; offset: $18 (24)
  884. serverHint                 ds     AddrBlock ; offset: $20 (32)
  885. dsRefNum                 ds.w   1        ; offset: $24 (36)
  886. callID                     ds.l   1        ; offset: $26 (38)
  887. identity                 ds.l   1        ; offset: $2A (42)
  888. gReserved1                 ds.l   1        ; offset: $2E (46)
  889. gReserved2                 ds.l   1        ; offset: $32 (50)
  890. gReserved3                 ds.l   1        ; offset: $36 (54)
  891. clientData                 ds.l   1        ; offset: $3A (58)
  892. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of principal 
  893. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  894. firstValid                 ds.l   1        ; offset: $46 (70)        ;  --> time at which proxy becomes valid 
  895. expiry                     ds.l   1        ; offset: $4A (74)        ;  --> time at which proxy expires 
  896. authDataLength             ds.l   1        ; offset: $4E (78)        ;  --> size of authorization data 
  897. authData                 ds.l   1        ; offset: $52 (82)        ;  --> pointer to authorization data 
  898. proxyLength                 ds.l   1        ; offset: $56 (86)        ; <--> max/actual proxy size 
  899. proxy                     ds.l   1        ; offset: $5A (90)        ; <--> buffer where proxy is returned 
  900. intermediary             ds.l   1        ; offset: $5E (94)        ;  --> RecordID of intermediary 
  901. sizeof                     EQU *            ; size:   $62 (98)
  902.                         ENDR
  903.  
  904. ; typedef struct AuthMakeProxyPB  AuthMakeProxyPB
  905. ;
  906. ;kAuthTradeProxyForCredentials:
  907. ;Using this call, intermediary holding a 'proxy' for a recipient may obtain credentials
  908. ;for that recipient. 'userIdentity' is the identity for the 'intermediary'.
  909. ;'recipient' is the RecordID for whom credetials are requested.
  910. ;'principal' is the RecordID of the user who created the proxy.
  911. ;'proxyLength' is the length of data pointed by 'proxy.
  912. ;If the call is succesfull, credentials will be returned in the
  913. ;buffer pointed by 'credentials'. 'expiry' is the desired expiry time at input.
  914. ;When call succeds this will have expiry time of credentials.
  915. ;This is very similar to GetCredentials except that we (of course) need the proxy,
  916. ;but we also need the name of the principal who created the proxy.
  917. ;
  918. AuthTradeProxyForCredentialsPB RECORD    0
  919. qLink                     ds.l   1        ; offset: $0 (0)
  920. reserved1                 ds.l   1        ; offset: $4 (4)
  921. reserved2                 ds.l   1        ; offset: $8 (8)
  922. ioCompletion             ds.l   1        ; offset: $C (12)
  923. ioResult                 ds.w   1        ; offset: $10 (16)
  924. saveA5                     ds.l   1        ; offset: $12 (18)
  925. reqCode                     ds.w   1        ; offset: $16 (22)
  926. reserved                 ds.l   2        ; offset: $18 (24)
  927. serverHint                 ds     AddrBlock ; offset: $20 (32)
  928. dsRefNum                 ds.w   1        ; offset: $24 (36)
  929. callID                     ds.l   1        ; offset: $26 (38)
  930. identity                 ds.l   1        ; offset: $2A (42)
  931. gReserved1                 ds.l   1        ; offset: $2E (46)
  932. gReserved2                 ds.l   1        ; offset: $32 (50)
  933. gReserved3                 ds.l   1        ; offset: $36 (54)
  934. clientData                 ds.l   1        ; offset: $3A (58)
  935. userIdentity             ds.l   1        ; offset: $3E (62)        ;  --> identity of intermediary 
  936. recipient                 ds.l   1        ; offset: $42 (66)        ;  --> OCE name of recipient 
  937. sessionKey                 ds.l   1        ; offset: $46 (70)        ; <--  session key 
  938. expiry                     ds.l   1        ; offset: $4A (74)        ; <--> desired/actual expiry 
  939. credentialsLength         ds.l   1        ; offset: $4E (78)        ; <--> max/actual credentials size 
  940. credentials                 ds.l   1        ; offset: $52 (82)        ; <--> buffer where credentials are returned 
  941. proxyLength                 ds.l   1        ; offset: $56 (86)        ;  --> actual proxy size 
  942. proxy                     ds.l   1        ; offset: $5A (90)        ;  --> buffer containing proxy 
  943. principal                 ds.l   1        ; offset: $5E (94)        ;  --> RecordID of principal 
  944. sizeof                     EQU *            ; size:   $62 (98)
  945.                         ENDR
  946.  
  947. ; typedef struct AuthTradeProxyForCredentialsPB  AuthTradeProxyForCredentialsPB
  948. ; API for Local Identity Interface 
  949. ;
  950. ;AuthGetLocalIdentityPB:
  951. ;A Collaborative application intended to work under the umbrella of LocalIdentity
  952. ;for the OCE toolbox will have to make this call to obtain LocalIdentity.
  953. ;If LocalIdentity has not been setup, then application will get
  954. ;'kOCEOCESetupRequired.'. In this case application should put the dialog
  955. ;recommended by the OCE Setup document and guide the user through OCE Setup.
  956. ;If the OCESetup contains local identity, but user has not unlocked, it will get
  957. ;kOCELocalAuthenticationFail. In this case application should use SDPPromptForLocalIdentity
  958. ;to prompt user for the password.
  959. ;If a backGround application or stand alone code requires LocalIdentity, if it gets the
  960. ;OSErr from LocalIdentity and can not call SDPPromptForLocalIdentity, it should it self
  961. ;register with the toolbox using kAuthAddToLocalIdentityQueue call. It will be notified
  962. ;when a LocalIdentity gets created by a foreground application.
  963. ;
  964. AuthGetLocalIdentityPB     RECORD    0
  965. qLink                     ds.l   1        ; offset: $0 (0)
  966. reserved1                 ds.l   1        ; offset: $4 (4)
  967. reserved2                 ds.l   1        ; offset: $8 (8)
  968. ioCompletion             ds.l   1        ; offset: $C (12)
  969. ioResult                 ds.w   1        ; offset: $10 (16)
  970. saveA5                     ds.l   1        ; offset: $12 (18)
  971. reqCode                     ds.w   1        ; offset: $16 (22)
  972. reserved                 ds.l   2        ; offset: $18 (24)
  973. serverHint                 ds     AddrBlock ; offset: $20 (32)
  974. dsRefNum                 ds.w   1        ; offset: $24 (36)
  975. callID                     ds.l   1        ; offset: $26 (38)
  976. identity                 ds.l   1        ; offset: $2A (42)
  977. gReserved1                 ds.l   1        ; offset: $2E (46)
  978. gReserved2                 ds.l   1        ; offset: $32 (50)
  979. gReserved3                 ds.l   1        ; offset: $36 (54)
  980. clientData                 ds.l   1        ; offset: $3A (58)
  981. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ; <--  LocalIdentity 
  982. sizeof                     EQU *            ; size:   $42 (66)
  983.                         ENDR
  984.  
  985. ; typedef struct AuthGetLocalIdentityPB  AuthGetLocalIdentityPB
  986. ;
  987. ;kAuthUnlockLocalIdentity:
  988. ;The LocalIdentity can be created using this call.
  989. ;The userName and password correspond to the LocalIdentity setup.
  990. ;If the password matches, then collabIdentity will be returned.
  991. ;Typically SDPPromptForLocalIdentity call will make this call.
  992. ;All applications which are registered through kAuthAddToLocalIdentityQueue
  993. ;will be notified.
  994. ;
  995. AuthUnlockLocalIdentityPB RECORD    0
  996. qLink                     ds.l   1        ; offset: $0 (0)
  997. reserved1                 ds.l   1        ; offset: $4 (4)
  998. reserved2                 ds.l   1        ; offset: $8 (8)
  999. ioCompletion             ds.l   1        ; offset: $C (12)
  1000. ioResult                 ds.w   1        ; offset: $10 (16)
  1001. saveA5                     ds.l   1        ; offset: $12 (18)
  1002. reqCode                     ds.w   1        ; offset: $16 (22)
  1003. reserved                 ds.l   2        ; offset: $18 (24)
  1004. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1005. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1006. callID                     ds.l   1        ; offset: $26 (38)
  1007. identity                 ds.l   1        ; offset: $2A (42)
  1008. gReserved1                 ds.l   1        ; offset: $2E (46)
  1009. gReserved2                 ds.l   1        ; offset: $32 (50)
  1010. gReserved3                 ds.l   1        ; offset: $36 (54)
  1011. clientData                 ds.l   1        ; offset: $3A (58)
  1012. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ; <--  LocalIdentity 
  1013. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1014. password                 ds.l   1        ; offset: $46 (70)        ;  -->user password 
  1015. sizeof                     EQU *            ; size:   $4A (74)
  1016.                         ENDR
  1017.  
  1018. ; typedef struct AuthUnlockLocalIdentityPB  AuthUnlockLocalIdentityPB
  1019. ;
  1020. ;kAuthLockLocalIdentity:
  1021. ;With this call existing LocalIdentity can be locked. If the ASDeleteLocalIdetity
  1022. ;call fails with 'kOCEOperationDenied' error, name will contain the application which
  1023. ;denied the operation. This name will be supplied by the application
  1024. ;when it registered through kAuthAddToLocalIdentityQueue call
  1025. ;
  1026. AuthLockLocalIdentityPB RECORD    0
  1027. qLink                     ds.l   1        ; offset: $0 (0)
  1028. reserved1                 ds.l   1        ; offset: $4 (4)
  1029. reserved2                 ds.l   1        ; offset: $8 (8)
  1030. ioCompletion             ds.l   1        ; offset: $C (12)
  1031. ioResult                 ds.w   1        ; offset: $10 (16)
  1032. saveA5                     ds.l   1        ; offset: $12 (18)
  1033. reqCode                     ds.w   1        ; offset: $16 (22)
  1034. reserved                 ds.l   2        ; offset: $18 (24)
  1035. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1036. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1037. callID                     ds.l   1        ; offset: $26 (38)
  1038. identity                 ds.l   1        ; offset: $2A (42)
  1039. gReserved1                 ds.l   1        ; offset: $2E (46)
  1040. gReserved2                 ds.l   1        ; offset: $32 (50)
  1041. gReserved3                 ds.l   1        ; offset: $36 (54)
  1042. clientData                 ds.l   1        ; offset: $3A (58)
  1043. theLocalIdentity         ds.l   1        ; offset: $3E (62)        ;  --> LocalIdentity 
  1044. name                     ds.l   1        ; offset: $42 (66)        ; <--  name of the app which denied delete 
  1045. sizeof                     EQU *            ; size:   $46 (70)
  1046.                         ENDR
  1047.  
  1048. ; typedef struct AuthLockLocalIdentityPB  AuthLockLocalIdentityPB
  1049. ; typedef NotificationUPP     NotificationProc
  1050. ;
  1051. ;kAuthAddToLocalIdentityQueue:
  1052. ;An application requiring notification of locking/unlocking of the
  1053. ;LocalIdentity can install itself using this call. The function provided
  1054. ;in 'notifyProc' will be called whenever the requested event happens.
  1055. ;When an AuthLockLocalIdentity call is made to the toolbox, the notificationProc
  1056. ;will be called with 'kAuthLockPending'. The application may refuse the lock by returning
  1057. ;a 'true' value. If all the registered entries return 'false' value, locking will be done
  1058. ;successfully. Otherwise 'kOCEOperationDenied' error is returned to the caller. The appName
  1059. ;(registered with the notificationProc) of the application which denied locking is also
  1060. ;returned to the caller making the AuthLockIdentity call.
  1061. ;
  1062. AuthAddToLocalIdentityQueuePB RECORD    0
  1063. qLink                     ds.l   1        ; offset: $0 (0)
  1064. reserved1                 ds.l   1        ; offset: $4 (4)
  1065. reserved2                 ds.l   1        ; offset: $8 (8)
  1066. ioCompletion             ds.l   1        ; offset: $C (12)
  1067. ioResult                 ds.w   1        ; offset: $10 (16)
  1068. saveA5                     ds.l   1        ; offset: $12 (18)
  1069. reqCode                     ds.w   1        ; offset: $16 (22)
  1070. reserved                 ds.l   2        ; offset: $18 (24)
  1071. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1072. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1073. callID                     ds.l   1        ; offset: $26 (38)
  1074. identity                 ds.l   1        ; offset: $2A (42)
  1075. gReserved1                 ds.l   1        ; offset: $2E (46)
  1076. gReserved2                 ds.l   1        ; offset: $32 (50)
  1077. gReserved3                 ds.l   1        ; offset: $36 (54)
  1078. clientData                 ds.l   1        ; offset: $3A (58)
  1079. notifyProc                 ds.l   1        ; offset: $3E (62)        ;  --> notification procedure 
  1080. notifyFlags                 ds.l   1        ; offset: $42 (66)        ;  --> notifyFlags 
  1081. appName                     ds.l   1        ; offset: $46 (70)        ;  --> name of application to be returned in Delete/Stop 
  1082. sizeof                     EQU *            ; size:   $4A (74)
  1083.                         ENDR
  1084.  
  1085. ; typedef struct AuthAddToLocalIdentityQueuePB  AuthAddToLocalIdentityQueuePB
  1086. ;
  1087. ;kAuthRemoveFromLocalIdentityQueue:
  1088. AuthRemoveFromLocalIdentityQueuePB RECORD    0
  1089. qLink                     ds.l   1        ; offset: $0 (0)
  1090. reserved1                 ds.l   1        ; offset: $4 (4)
  1091. reserved2                 ds.l   1        ; offset: $8 (8)
  1092. ioCompletion             ds.l   1        ; offset: $C (12)
  1093. ioResult                 ds.w   1        ; offset: $10 (16)
  1094. saveA5                     ds.l   1        ; offset: $12 (18)
  1095. reqCode                     ds.w   1        ; offset: $16 (22)
  1096. reserved                 ds.l   2        ; offset: $18 (24)
  1097. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1098. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1099. callID                     ds.l   1        ; offset: $26 (38)
  1100. identity                 ds.l   1        ; offset: $2A (42)
  1101. gReserved1                 ds.l   1        ; offset: $2E (46)
  1102. gReserved2                 ds.l   1        ; offset: $32 (50)
  1103. gReserved3                 ds.l   1        ; offset: $36 (54)
  1104. clientData                 ds.l   1        ; offset: $3A (58)
  1105. notifyProc                 ds.l   1        ; offset: $3E (62)        ;  --> notification procedure 
  1106. sizeof                     EQU *            ; size:   $42 (66)
  1107.                         ENDR
  1108.  
  1109. ; typedef struct AuthRemoveFromLocalIdentityQueuePB  AuthRemoveFromLocalIdentityQueuePB
  1110. ;
  1111. ;kAuthSetupLocalIdentity:
  1112. ;The LocalIdentity can be Setup using this call.
  1113. ;The userName and password correspond to the LocalIdentity setup.
  1114. ;If a LocalIdentity Setup already exists 'kOCELocalIdentitySetupExists' error
  1115. ;will be returned.
  1116. ;
  1117. AuthSetupLocalIdentityPB RECORD    0
  1118. qLink                     ds.l   1        ; offset: $0 (0)
  1119. reserved1                 ds.l   1        ; offset: $4 (4)
  1120. reserved2                 ds.l   1        ; offset: $8 (8)
  1121. ioCompletion             ds.l   1        ; offset: $C (12)
  1122. ioResult                 ds.w   1        ; offset: $10 (16)
  1123. saveA5                     ds.l   1        ; offset: $12 (18)
  1124. reqCode                     ds.w   1        ; offset: $16 (22)
  1125. reserved                 ds.l   2        ; offset: $18 (24)
  1126. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1127. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1128. callID                     ds.l   1        ; offset: $26 (38)
  1129. identity                 ds.l   1        ; offset: $2A (42)
  1130. gReserved1                 ds.l   1        ; offset: $2E (46)
  1131. gReserved2                 ds.l   1        ; offset: $32 (50)
  1132. gReserved3                 ds.l   1        ; offset: $36 (54)
  1133. clientData                 ds.l   1        ; offset: $3A (58)
  1134. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1135. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1136. password                 ds.l   1        ; offset: $46 (70)        ;  -->user password 
  1137. sizeof                     EQU *            ; size:   $4A (74)
  1138.                         ENDR
  1139.  
  1140. ; typedef struct AuthSetupLocalIdentityPB  AuthSetupLocalIdentityPB
  1141. ;
  1142. ;kAuthChangeLocalIdentity:
  1143. ;An existing LocalIdentity  Setup can be changed using this call.
  1144. ;The userName and password correspond to the LocalIdentity setup.
  1145. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1146. ;will be returned. The user can use  kAuthSetupLocalIdentity call to setit up.
  1147. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1148. ;OSErr will be returned. If successful, LocalID will have new name as 'userName' and
  1149. ;password as 'newPassword' and if any applications has installed into 
  1150. ;LocalIdentityQueue with kNotifyNameChangeMask set, it will be notified with 
  1151. ;kAuthLocalIdentityNameChangeOp action value. 
  1152. ;
  1153. ;
  1154. AuthChangeLocalIdentityPB RECORD    0
  1155. qLink                     ds.l   1        ; offset: $0 (0)
  1156. reserved1                 ds.l   1        ; offset: $4 (4)
  1157. reserved2                 ds.l   1        ; offset: $8 (8)
  1158. ioCompletion             ds.l   1        ; offset: $C (12)
  1159. ioResult                 ds.w   1        ; offset: $10 (16)
  1160. saveA5                     ds.l   1        ; offset: $12 (18)
  1161. reqCode                     ds.w   1        ; offset: $16 (22)
  1162. reserved                 ds.l   2        ; offset: $18 (24)
  1163. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1164. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1165. callID                     ds.l   1        ; offset: $26 (38)
  1166. identity                 ds.l   1        ; offset: $2A (42)
  1167. gReserved1                 ds.l   1        ; offset: $2E (46)
  1168. gReserved2                 ds.l   1        ; offset: $32 (50)
  1169. gReserved3                 ds.l   1        ; offset: $36 (54)
  1170. clientData                 ds.l   1        ; offset: $3A (58)
  1171. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1172. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1173. password                 ds.l   1        ; offset: $46 (70)        ;  --> current password 
  1174. newPassword                 ds.l   1        ; offset: $4A (74)        ;  --> new password 
  1175. sizeof                     EQU *            ; size:   $4E (78)
  1176.                         ENDR
  1177.  
  1178. ; typedef struct AuthChangeLocalIdentityPB  AuthChangeLocalIdentityPB
  1179. ;
  1180. ;kAuthRemoveLocalIdentity:
  1181. ;An existing LocalIdentity  Setup can be removed using this call.
  1182. ;The userName and password correspond to the LocalIdentity setup.
  1183. ;If a LocalIdentity Setup does not exists 'kOCEOCESetupRequired' error
  1184. ;will be returned.
  1185. ;If the 'password' does not correspond to the existing setup, 'kOCELocalAuthenticationFail'
  1186. ;OSErr will be returned. If successful, LocalIdentity will be removed from the OCE Setup.
  1187. ;This is a very distructive operation, user must be warned enough before actually making
  1188. ;this call.
  1189. ;
  1190. AuthRemoveLocalIdentityPB RECORD    0
  1191. qLink                     ds.l   1        ; offset: $0 (0)
  1192. reserved1                 ds.l   1        ; offset: $4 (4)
  1193. reserved2                 ds.l   1        ; offset: $8 (8)
  1194. ioCompletion             ds.l   1        ; offset: $C (12)
  1195. ioResult                 ds.w   1        ; offset: $10 (16)
  1196. saveA5                     ds.l   1        ; offset: $12 (18)
  1197. reqCode                     ds.w   1        ; offset: $16 (22)
  1198. reserved                 ds.l   2        ; offset: $18 (24)
  1199. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1200. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1201. callID                     ds.l   1        ; offset: $26 (38)
  1202. identity                 ds.l   1        ; offset: $2A (42)
  1203. gReserved1                 ds.l   1        ; offset: $2E (46)
  1204. gReserved2                 ds.l   1        ; offset: $32 (50)
  1205. gReserved3                 ds.l   1        ; offset: $36 (54)
  1206. clientData                 ds.l   1        ; offset: $3A (58)
  1207. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  1208. userName                 ds.l   1        ; offset: $42 (66)        ;  --> userName 
  1209. password                 ds.l   1        ; offset: $46 (70)        ;  --> current password 
  1210. sizeof                     EQU *            ; size:   $4A (74)
  1211.                         ENDR
  1212.  
  1213. ; typedef struct AuthRemoveLocalIdentityPB  AuthRemoveLocalIdentityPB
  1214. ;
  1215. ;kOCESetupAddDirectoryInfo:
  1216. ;Using this call identity for a catalog can be setup under LocalIdentity umbrella.
  1217. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1218. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1219. ;DirAddDSAMDirectory call was made.
  1220. ;rid-> is the recordID in which the identity for the catalog will be established.
  1221. ;password-> the password associated with the rid in the catalog world.
  1222. ;
  1223. OCESetupAddDirectoryInfoPB RECORD    0
  1224. qLink                     ds.l   1        ; offset: $0 (0)
  1225. reserved1                 ds.l   1        ; offset: $4 (4)
  1226. reserved2                 ds.l   1        ; offset: $8 (8)
  1227. ioCompletion             ds.l   1        ; offset: $C (12)
  1228. ioResult                 ds.w   1        ; offset: $10 (16)
  1229. saveA5                     ds.l   1        ; offset: $12 (18)
  1230. reqCode                     ds.w   1        ; offset: $16 (22)
  1231. reserved                 ds.l   2        ; offset: $18 (24)
  1232. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1233. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1234. callID                     ds.l   1        ; offset: $26 (38)
  1235. identity                 ds.l   1        ; offset: $2A (42)
  1236. gReserved1                 ds.l   1        ; offset: $2E (46)
  1237. gReserved2                 ds.l   1        ; offset: $32 (50)
  1238. gReserved3                 ds.l   1        ; offset: $36 (54)
  1239. clientData                 ds.l   1        ; offset: $3A (58)
  1240. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1241. recordID                 ds.l   1        ; offset: $46 (70)        ;  --> recordID for the identity 
  1242. password                 ds.l   1        ; offset: $4A (74)        ;  --> password in the catalog world 
  1243. sizeof                     EQU *            ; size:   $4E (78)
  1244.                         ENDR
  1245.  
  1246. ; typedef struct OCESetupAddDirectoryInfoPB  OCESetupAddDirectoryInfoPB
  1247. ;
  1248. ;kOCESetupChangeDirectoryInfo:
  1249. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1250. ;can be changed.
  1251. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1252. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1253. ;DirAddDSAMDirectory call was made.
  1254. ;rid-> is the recordID in which the identity for the catalog will be established.
  1255. ;password-> the password associated with the rid in the catalog world.
  1256. ;newPassword -> the new password for the catalog
  1257. ;
  1258. OCESetupChangeDirectoryInfoPB RECORD    0
  1259. qLink                     ds.l   1        ; offset: $0 (0)
  1260. reserved1                 ds.l   1        ; offset: $4 (4)
  1261. reserved2                 ds.l   1        ; offset: $8 (8)
  1262. ioCompletion             ds.l   1        ; offset: $C (12)
  1263. ioResult                 ds.w   1        ; offset: $10 (16)
  1264. saveA5                     ds.l   1        ; offset: $12 (18)
  1265. reqCode                     ds.w   1        ; offset: $16 (22)
  1266. reserved                 ds.l   2        ; offset: $18 (24)
  1267. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1268. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1269. callID                     ds.l   1        ; offset: $26 (38)
  1270. identity                 ds.l   1        ; offset: $2A (42)
  1271. gReserved1                 ds.l   1        ; offset: $2E (46)
  1272. gReserved2                 ds.l   1        ; offset: $32 (50)
  1273. gReserved3                 ds.l   1        ; offset: $36 (54)
  1274. clientData                 ds.l   1        ; offset: $3A (58)
  1275. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1276. recordID                 ds.l   1        ; offset: $46 (70)        ;  --> recordID for the identity 
  1277. password                 ds.l   1        ; offset: $4A (74)        ;  --> password in the catalog world 
  1278. newPassword                 ds.l   1        ; offset: $4E (78)        ;  --> new password in the catalog 
  1279. sizeof                     EQU *            ; size:   $52 (82)
  1280.                         ENDR
  1281.  
  1282. ; typedef struct OCESetupChangeDirectoryInfoPB  OCESetupChangeDirectoryInfoPB
  1283. ;
  1284. ;kOCESetupRemoveDirectoryInfo:
  1285. ;Using this call an existing identity for a catalog under LocalIdentity umbrella
  1286. ;can be changed.
  1287. ;ASCreateLocalIdentity should have been done succesfully before making this call.
  1288. ;directoryRecordCID -> is the record creationID obtained when DirAddOCEDirectory or
  1289. ;
  1290. OCESetupRemoveDirectoryInfoPB RECORD    0
  1291. qLink                     ds.l   1        ; offset: $0 (0)
  1292. reserved1                 ds.l   1        ; offset: $4 (4)
  1293. reserved2                 ds.l   1        ; offset: $8 (8)
  1294. ioCompletion             ds.l   1        ; offset: $C (12)
  1295. ioResult                 ds.w   1        ; offset: $10 (16)
  1296. saveA5                     ds.l   1        ; offset: $12 (18)
  1297. reqCode                     ds.w   1        ; offset: $16 (22)
  1298. reserved                 ds.l   2        ; offset: $18 (24)
  1299. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1300. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1301. callID                     ds.l   1        ; offset: $26 (38)
  1302. identity                 ds.l   1        ; offset: $2A (42)
  1303. gReserved1                 ds.l   1        ; offset: $2E (46)
  1304. gReserved2                 ds.l   1        ; offset: $32 (50)
  1305. gReserved3                 ds.l   1        ; offset: $36 (54)
  1306. clientData                 ds.l   1        ; offset: $3A (58)
  1307. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the catalog 
  1308. sizeof                     EQU *            ; size:   $46 (70)
  1309.                         ENDR
  1310.  
  1311. ; typedef struct OCESetupRemoveDirectoryInfoPB  OCESetupRemoveDirectoryInfoPB
  1312. ;
  1313. ;kOCESetupGetDirectoryInfo:
  1314. ;Using this call info on an existing identity for a particular catalog under LocalIdentity umbrella
  1315. ;can be obtained.
  1316. ;For the specified catalog 'directoryName' and 'discriminator', rid and nativeName will
  1317. ;returned. Caller must provide appropriate buffer to get back rid and nativeName.
  1318. ;'password' will be returned  for  non-ADAP Catalogs.
  1319. ;
  1320. OCESetupGetDirectoryInfoPB RECORD    0
  1321. qLink                     ds.l   1        ; offset: $0 (0)
  1322. reserved1                 ds.l   1        ; offset: $4 (4)
  1323. reserved2                 ds.l   1        ; offset: $8 (8)
  1324. ioCompletion             ds.l   1        ; offset: $C (12)
  1325. ioResult                 ds.w   1        ; offset: $10 (16)
  1326. saveA5                     ds.l   1        ; offset: $12 (18)
  1327. reqCode                     ds.w   1        ; offset: $16 (22)
  1328. reserved                 ds.l   2        ; offset: $18 (24)
  1329. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1330. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1331. callID                     ds.l   1        ; offset: $26 (38)
  1332. identity                 ds.l   1        ; offset: $2A (42)
  1333. gReserved1                 ds.l   1        ; offset: $2E (46)
  1334. gReserved2                 ds.l   1        ; offset: $32 (50)
  1335. gReserved3                 ds.l   1        ; offset: $36 (54)
  1336. clientData                 ds.l   1        ; offset: $3A (58)
  1337. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  1338. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator for the catalog 
  1339. recordID                 ds.l   1        ; offset: $4A (74)        ; <--  rid for the catalog identity 
  1340. nativeName                 ds.l   1        ; offset: $4E (78)        ; <--  user name in the catalog world 
  1341. password                 ds.l   1        ; offset: $52 (82)        ; <--  password in the catalog world 
  1342. sizeof                     EQU *            ; size:   $56 (86)
  1343.                         ENDR
  1344.  
  1345. ; typedef struct OCESetupGetDirectoryInfoPB  OCESetupGetDirectoryInfoPB
  1346. ;****************************************************************************
  1347. ;
  1348. ;
  1349. ;         Catalog Manager operations
  1350. ;
  1351. ;
  1352. ;****************************************************************************
  1353. ; typedef union DirParamBlock  DirParamBlock
  1354. ; typedef DirParamBlock     *DirParamBlockPtr
  1355. ; AddRecord 
  1356. DirAddRecordPB             RECORD    0
  1357. qLink                     ds.l   1        ; offset: $0 (0)
  1358. reserved1                 ds.l   1        ; offset: $4 (4)
  1359. reserved2                 ds.l   1        ; offset: $8 (8)
  1360. ioCompletion             ds.l   1        ; offset: $C (12)
  1361. ioResult                 ds.w   1        ; offset: $10 (16)
  1362. saveA5                     ds.l   1        ; offset: $12 (18)
  1363. reqCode                     ds.w   1        ; offset: $16 (22)
  1364. reserved                 ds.l   2        ; offset: $18 (24)
  1365. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1366. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1367. callID                     ds.l   1        ; offset: $26 (38)
  1368. identity                 ds.l   1        ; offset: $2A (42)
  1369. gReserved1                 ds.l   1        ; offset: $2E (46)
  1370. gReserved2                 ds.l   1        ; offset: $32 (50)
  1371. gReserved3                 ds.l   1        ; offset: $36 (54)
  1372. clientData                 ds.l   1        ; offset: $3A (58)
  1373. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> CreationID returned here 
  1374. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  --> 
  1375. filler1                     ds.b   1        ; offset: $43 (67)
  1376. sizeof                     EQU *            ; size:   $44 (68)
  1377.                         ENDR
  1378.  
  1379. ; typedef struct DirAddRecordPB  DirAddRecordPB
  1380. ; DeleteRecord 
  1381. DirDeleteRecordPB         RECORD    0
  1382. qLink                     ds.l   1        ; offset: $0 (0)
  1383. reserved1                 ds.l   1        ; offset: $4 (4)
  1384. reserved2                 ds.l   1        ; offset: $8 (8)
  1385. ioCompletion             ds.l   1        ; offset: $C (12)
  1386. ioResult                 ds.w   1        ; offset: $10 (16)
  1387. saveA5                     ds.l   1        ; offset: $12 (18)
  1388. reqCode                     ds.w   1        ; offset: $16 (22)
  1389. reserved                 ds.l   2        ; offset: $18 (24)
  1390. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1391. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1392. callID                     ds.l   1        ; offset: $26 (38)
  1393. identity                 ds.l   1        ; offset: $2A (42)
  1394. gReserved1                 ds.l   1        ; offset: $2E (46)
  1395. gReserved2                 ds.l   1        ; offset: $32 (50)
  1396. gReserved3                 ds.l   1        ; offset: $36 (54)
  1397. clientData                 ds.l   1        ; offset: $3A (58)
  1398. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1399. sizeof                     EQU *            ; size:   $42 (66)
  1400.                         ENDR
  1401.  
  1402. ; typedef struct DirDeleteRecordPB  DirDeleteRecordPB
  1403. ; aRecord must contain valid PackedRLI and a CreationID. 
  1404. ;********************************************************************************
  1405. ;
  1406. ;DirEnumerate:
  1407. ;This call can be used to enumerate both DNodes and records under a specified
  1408. ;DNode. A DNode is specified by the PackedRLIPtr 'aRLI'.
  1409. ;
  1410. ;startingPoint indicates where to start the enumeration.  Initially,
  1411. ;it should be set to a value of nil.  After some records are enumerated,
  1412. ;the client can issue the call again with the same aRLI and recordName and
  1413. ;typeList. The last received DirEnumSpec in the startingPoint field.  The server
  1414. ;will continue the enumeration from that record on. if user wants to get back the
  1415. ;value specified in the startingRecord also, the Boolean 'includeStartingPoint'
  1416. ;must be set to 'true'. If this is set to 'false', records specified after the
  1417. ;startingPoint record will be returned.
  1418. ;
  1419. ;sortBy indicates to the server to return the records that match in name-first
  1420. ;or type-first order.  sortDirection indicates to the server to search in forward
  1421. ;or backward sort order for RecordIDs Specified.
  1422. ;
  1423. ;RecordIDS and Enumeration Criteria:
  1424. ;
  1425. ;PackedRLIPtr parameter 'aRLI' will be accepted for DNode
  1426. ;specification.
  1427. ;
  1428. ;One RStringPtr 'nameMatchString' is provided. User is allowed to
  1429. ;specify a wild card in the name. WildCard specification is specified in 
  1430. ;matchNameHow parameter and possible values are defined in DirMatchWith Enum.
  1431. ;
  1432. ;'typeCount' parameter indicate how many types are in the 'typeList'.
  1433. ;
  1434. ;'typeList' parmeter is a pointer to an RString array of size 'typeCount'.
  1435. ;
  1436. ;If 'typeCount' is exactly equal to one, a wild card can be specified
  1437. ;for the entity type; otherwise types have to be completely specified.
  1438. ;WildCard specification is specified in  matchNameHow parameter
  1439. ; and possible values are defined in DirMatchWith Enum.
  1440. ;
  1441. ;
  1442. ;A nil value for 'startingPoint' is allowed when sortDirection specified
  1443. ;is 'kSortBackwards'. This was not allowed previously.
  1444. ;
  1445. ;'enumFlags' parameter is a bit field. The following bits can be set:
  1446. ;    kEnumDistinguishedNameMask to get back records in the cluster data base.
  1447. ;    kEnumAliasMask to get back record aliases
  1448. ;    kEnumPseudonymMask to get back record pseudonyms
  1449. ;    kEnumDNodeMask to get back any children dNodes for the DNode specified in the
  1450. ;    'aRLI' parameter.
  1451. ;    kEnumForeignDNodeMask to get back any children dNodes which have ForeignDnodes in the
  1452. ;    dNode specified in the 'aRLI' parameter.
  1453. ;
  1454. ;    kEnumAll is combination of all five values and can be used to enumerate
  1455. ;    everything under a specified DNode.
  1456. ;
  1457. ;
  1458. ;
  1459. ;The results returned for each element will consist of a DirEnumSpec.
  1460. ;The DirEnumSpec contains 'enumFlag' which indicates the type of entity and a
  1461. ;union which will have either DNodeID or LocalRecordID depending on the value of 'enumFlag'.
  1462. ;The 'enumFlag'  will indicate whether the returned element is a
  1463. ;record(kEnumDistinguishedNameMask bit) or a alias(kEnumAliasMask bit) or a
  1464. ;Pseudonym(kEnumPseudonymMask) or a child DNode(kEnumDNodeMask bit).  If the 'enumFlag' value
  1465. ;is kEnumDnodeMask, it indicates the value returned in the union is a DNodeID (i.e. 'dNodeNumber'
  1466. ;is the 'dNodeNumber' of the child dnode(if the catalog supports dNodeNumbers, otherwise
  1467. ;this will be set to zero). The name will be the child dnode name. For other values of the
  1468. ;'enumFlag', the value in the union will be LocalRecordID. In addition to kEnumDnodeMask it is
  1469. ;possible that kEnumForeignDNodeMask is also set. This is an advisory bit and application must make
  1470. ;it's own decision before displaying these records. If catalog supports kSupportIndexRatioMask, it
  1471. ;may also return the relative position of the record (percentile of total records) in the 
  1472. ;indexRatio field in EnumSpec.
  1473. ;
  1474. ;
  1475. ;responseSLRV will contain the script, language, region and version of the oce sorting software.
  1476. ;The results will be collected in the 'getBuffer' supplied by the user.
  1477. ;If buffer can not hold all the data returned 'kOCEMoreData' error will be returned.
  1478. ;
  1479. ;If user receives 'noErr' or 'kOCEMoreData', buffer will contain valid results. A user
  1480. ;can extract the results in the 'getBuffer' by making DirEnumerateParse' call.
  1481. ;
  1482. DirEnumerateGetPB         RECORD    0
  1483. qLink                     ds.l   1        ; offset: $0 (0)
  1484. reserved1                 ds.l   1        ; offset: $4 (4)
  1485. reserved2                 ds.l   1        ; offset: $8 (8)
  1486. ioCompletion             ds.l   1        ; offset: $C (12)
  1487. ioResult                 ds.w   1        ; offset: $10 (16)
  1488. saveA5                     ds.l   1        ; offset: $12 (18)
  1489. reqCode                     ds.w   1        ; offset: $16 (22)
  1490. reserved                 ds.l   2        ; offset: $18 (24)
  1491. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1492. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1493. callID                     ds.l   1        ; offset: $26 (38)
  1494. identity                 ds.l   1        ; offset: $2A (42)
  1495. gReserved1                 ds.l   1        ; offset: $2E (46)
  1496. gReserved2                 ds.l   1        ; offset: $32 (50)
  1497. gReserved3                 ds.l   1        ; offset: $36 (54)
  1498. clientData                 ds.l   1        ; offset: $3A (58)
  1499. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  1500. startingPoint             ds.l   1        ; offset: $42 (66)        ;  --> 
  1501. sortBy                     ds.w   1        ; offset: $46 (70)        ;  --> 
  1502. sortDirection             ds.w   1        ; offset: $48 (72)        ;  --> 
  1503. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1504. nameMatchString             ds.l   1        ; offset: $4E (78)        ;  --> name from which enumeration should start 
  1505. typesList                 ds.l   1        ; offset: $52 (82)        ;  --> list of entity types to be enumerated 
  1506. typeCount                 ds.l   1        ; offset: $56 (86)        ;  --> number of types in the list 
  1507. enumFlags                 ds.l   1        ; offset: $5A (90)        ;  --> indicates what to enumerate 
  1508. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the record specified in starting point 
  1509. padByte                     ds.b   1        ; offset: $5F (95)
  1510. matchNameHow             ds.b   1        ; offset: $60 (96)        ;  --> Matching Criteria for nameMatchString 
  1511. matchTypeHow             ds.b   1        ; offset: $61 (97)        ;  --> Matching Criteria for typeList 
  1512. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1513. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1514. responseSLRV             ds     SLRV    ; offset: $6A (106)        ;  <--  response SLRV 
  1515. sizeof                     EQU *            ; size:   $72 (114)
  1516.                         ENDR
  1517.  
  1518. ; typedef struct DirEnumerateGetPB  DirEnumerateGetPB
  1519. ; The EnumerateRecords call-back function is defined as follows: 
  1520. ; typedef ForEachDirEnumSpecUPP  ForEachDirEnumSpec
  1521. ;
  1522. ;EnumerateParse:
  1523. ;After an EnumerateGet call has completed, call EnumerateParse
  1524. ;to parse through the buffer that was filled in EnumerateGet.
  1525. ;
  1526. ;'eachEnumSpec' will be called each time to return to the client a
  1527. ;DirEnumSpec that matches the pattern for enumeration. 'enumFlag' indicates the type
  1528. ;of information returned in the DirEnumSpec
  1529. ;The clientData parameter that you pass in the parameter block will be passed
  1530. ;to 'forEachEnumDSSpecFunc'.  You are free to put anything in clientData - it is intended
  1531. ;to allow you some way to match the call-back to the original call (for
  1532. ;example, you make more then one aysynchronous EnumerateGet calls and you want to
  1533. ;associate returned results in some way).
  1534. ;
  1535. ;The client should return FALSE from 'eachEnumSpec' to continue
  1536. ;processing of the EnumerateParse request.  Returning TRUE will
  1537. ;terminate the EnumerateParse request.
  1538. ;
  1539. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1540. ;of execution as the thread that made the EnumerateParse call.  That means that the
  1541. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1542. ;that were in effect when the call was made.  Because of this, the call-back
  1543. ;routine has the same restrictions as the caller of EnumerateParse:
  1544. ;if EnumerateParse was not called from interrupt level, then the call-
  1545. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1546. ;like a ioCompletion except that A5 will be preserved for the application.
  1547. ;
  1548. DirEnumerateParsePB     RECORD    0
  1549. qLink                     ds.l   1        ; offset: $0 (0)
  1550. reserved1                 ds.l   1        ; offset: $4 (4)
  1551. reserved2                 ds.l   1        ; offset: $8 (8)
  1552. ioCompletion             ds.l   1        ; offset: $C (12)
  1553. ioResult                 ds.w   1        ; offset: $10 (16)
  1554. saveA5                     ds.l   1        ; offset: $12 (18)
  1555. reqCode                     ds.w   1        ; offset: $16 (22)
  1556. reserved                 ds.l   2        ; offset: $18 (24)
  1557. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1558. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1559. callID                     ds.l   1        ; offset: $26 (38)
  1560. identity                 ds.l   1        ; offset: $2A (42)
  1561. gReserved1                 ds.l   1        ; offset: $2E (46)
  1562. gReserved2                 ds.l   1        ; offset: $32 (50)
  1563. gReserved3                 ds.l   1        ; offset: $36 (54)
  1564. clientData                 ds.l   1        ; offset: $3A (58)
  1565. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  1566. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  1567. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1568. eachEnumSpec             ds.l   1        ; offset: $4A (74)        ;  --> 
  1569. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  1570. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1571. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  1572. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  1573. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  1574. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1575. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1576. l1Reserved                 ds.w   1        ; offset: $6A (106)        ;  -- 
  1577. l2Reserved                 ds.w   1        ; offset: $6C (108)        ;  --  
  1578. l3Reserved                 ds.w   1        ; offset: $6E (110)        ;  -- 
  1579. l4Reserved                 ds.w   1        ; offset: $70 (112)        ;  --  
  1580. sizeof                     EQU *            ; size:   $72 (114)
  1581.                         ENDR
  1582.  
  1583. ; typedef struct DirEnumerateParsePB  DirEnumerateParsePB
  1584. ;
  1585. ; * FindRecordGet operates similarly to DirEnumerate except it returns a list
  1586. ; * of records instead of records local to a cluster.
  1587. ;
  1588. DirFindRecordGetPB         RECORD    0
  1589. qLink                     ds.l   1        ; offset: $0 (0)
  1590. reserved1                 ds.l   1        ; offset: $4 (4)
  1591. reserved2                 ds.l   1        ; offset: $8 (8)
  1592. ioCompletion             ds.l   1        ; offset: $C (12)
  1593. ioResult                 ds.w   1        ; offset: $10 (16)
  1594. saveA5                     ds.l   1        ; offset: $12 (18)
  1595. reqCode                     ds.w   1        ; offset: $16 (22)
  1596. reserved                 ds.l   2        ; offset: $18 (24)
  1597. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1598. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1599. callID                     ds.l   1        ; offset: $26 (38)
  1600. identity                 ds.l   1        ; offset: $2A (42)
  1601. gReserved1                 ds.l   1        ; offset: $2E (46)
  1602. gReserved2                 ds.l   1        ; offset: $32 (50)
  1603. gReserved3                 ds.l   1        ; offset: $36 (54)
  1604. clientData                 ds.l   1        ; offset: $3A (58)
  1605. startingPoint             ds.l   1        ; offset: $3E (62)
  1606. reservedA                 ds.l   2        ; offset: $42 (66)
  1607. nameMatchString             ds.l   1        ; offset: $4A (74)
  1608. typesList                 ds.l   1        ; offset: $4E (78)
  1609. typeCount                 ds.l   1        ; offset: $52 (82)
  1610. reservedB                 ds.l   1        ; offset: $56 (86)
  1611. reservedC                 ds.w   1        ; offset: $5A (90)
  1612. matchNameHow             ds.b   1        ; offset: $5C (92)
  1613. matchTypeHow             ds.b   1        ; offset: $5D (93)
  1614. getBuffer                 ds.l   1        ; offset: $5E (94)
  1615. getBufferSize             ds.l   1        ; offset: $62 (98)
  1616. directoryName             ds.l   1        ; offset: $66 (102)
  1617. discriminator             ds.l   2        ; offset: $6A (106)
  1618. sizeof                     EQU *            ; size:   $72 (114)
  1619.                         ENDR
  1620.  
  1621. ; typedef struct DirFindRecordGetPB  DirFindRecordGetPB
  1622. ; The FindRecordParse call-back function is defined as follows: 
  1623. ; typedef ForEachRecordUPP     ForEachRecord
  1624. ;
  1625. ; * This PB same as DirFindRecordGet except it includes the callback function
  1626. ;
  1627. DirFindRecordParsePB     RECORD    0
  1628. qLink                     ds.l   1        ; offset: $0 (0)
  1629. reserved1                 ds.l   1        ; offset: $4 (4)
  1630. reserved2                 ds.l   1        ; offset: $8 (8)
  1631. ioCompletion             ds.l   1        ; offset: $C (12)
  1632. ioResult                 ds.w   1        ; offset: $10 (16)
  1633. saveA5                     ds.l   1        ; offset: $12 (18)
  1634. reqCode                     ds.w   1        ; offset: $16 (22)
  1635. reserved                 ds.l   2        ; offset: $18 (24)
  1636. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1637. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1638. callID                     ds.l   1        ; offset: $26 (38)
  1639. identity                 ds.l   1        ; offset: $2A (42)
  1640. gReserved1                 ds.l   1        ; offset: $2E (46)
  1641. gReserved2                 ds.l   1        ; offset: $32 (50)
  1642. gReserved3                 ds.l   1        ; offset: $36 (54)
  1643. clientData                 ds.l   1        ; offset: $3A (58)
  1644. startingPoint             ds.l   1        ; offset: $3E (62)
  1645. reservedA                 ds.l   2        ; offset: $42 (66)
  1646. nameMatchString             ds.l   1        ; offset: $4A (74)
  1647. typesList                 ds.l   1        ; offset: $4E (78)
  1648. typeCount                 ds.l   1        ; offset: $52 (82)
  1649. reservedB                 ds.l   1        ; offset: $56 (86)
  1650. reservedC                 ds.w   1        ; offset: $5A (90)
  1651. matchNameHow             ds.b   1        ; offset: $5C (92)
  1652. matchTypeHow             ds.b   1        ; offset: $5D (93)
  1653. getBuffer                 ds.l   1        ; offset: $5E (94)
  1654. getBufferSize             ds.l   1        ; offset: $62 (98)
  1655. directoryName             ds.l   1        ; offset: $66 (102)
  1656. discriminator             ds.l   2        ; offset: $6A (106)
  1657. forEachRecordFunc         ds.l   1        ; offset: $72 (114)
  1658. sizeof                     EQU *            ; size:   $76 (118)
  1659.                         ENDR
  1660.  
  1661. ; typedef struct DirFindRecordParsePB  DirFindRecordParsePB
  1662. ;
  1663. ;LookupGet:
  1664. ;
  1665. ;aRecordList is an array of pointers to RecordIDs, each of which must
  1666. ;contain valid PackedRLI and a CreationID.  recordIDCount is
  1667. ;the size of this array.
  1668. ;
  1669. ;attrTypeList is an array of pointers to AttributeTypes.  attrTypeCount is
  1670. ;the size of this array.
  1671. ;
  1672. ;staringRecordIndex is the record from which to continue the lookup.
  1673. ;If you want to start from first record in the list, this must be 1 (not zero).
  1674. ;This value must always be <= recordIDCount.
  1675. ;
  1676. ;startingAttributeIndex is the AttributeType from which we want to continue the lookup.
  1677. ;If you want to start from first attribute in the list, this must be 1 (not zero).
  1678. ;This value must always be <= attrTypeCount.
  1679. ;
  1680. ;startingAttribute is the value of the attribute value from which we want to
  1681. ;continue lookup. In case of catalogs supporting creationIDs, startingAttribute
  1682. ;may contain only a CID. Other catalogs may require the entire value.
  1683. ;If a non-null cid is given and if an attribute value with that cid is not found, this
  1684. ;call will terminate with kOCENoSuchAttribute error. A client should not make a LookupParse call
  1685. ;after getting this error.
  1686. ;
  1687. ;'includeStartingPoint' boolean can be set to 'true' to receive the value specified in the
  1688. ;startingPoint in the results returned. If this is set to 'false', the value
  1689. ;specified in the startingAttribute will not be returned.
  1690. ;
  1691. ;When LookupGet call fails with kOCEMoreData, the client will be able to find out where the call ended
  1692. ;with a subsequent LookupParse call. When the LookupParse call completes with kOCEMoreData,
  1693. ;lastRecordIndex, lastAttributeIndex and lastValueCID will point to the corresponding
  1694. ;recordID, attributeType and the CreationID of the last value returned successfully. These parameters
  1695. ;are exactly the same ones for the startingRecordIndex, startingAttributeIndex, and startingAttrValueCID
  1696. ;so they can be used in a subsequent LookupGet call to continue the lookup.
  1697. ;
  1698. ;In an extreme case, It is possible that we had an attribute value that is too large to fit
  1699. ;in the client's buffer. In such cases, if it was the only thing that we tried to fit
  1700. ;into the buffer, the client will not able to proceed further because he will not know the
  1701. ;attributeCID of the attribute to continue with.  Also he does not know how big a buffer
  1702. ;would be needed for the next call to get this 'mondo' attribute value successfully.
  1703. ;
  1704. ;to support this, LookupParse call will do the following:
  1705. ;
  1706. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1707. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1708. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1709. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1710. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1711. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1712. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1713. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1714. ;any of the attribute values.  A kOCEMoreData error is returned.
  1715. ;
  1716. ;The Toolbox will check for duplicate RecordIDs in the aRecordList. If found, it will return
  1717. ;'daDuplicateRecordIDErr'.
  1718. ;
  1719. ;The Toolbox will check for duplicate AttributeTypes in the attrTypeList. If found it will
  1720. ;return 'daDuplicateAttrTypeErr'.
  1721. ;
  1722. DirLookupGetPB             RECORD    0
  1723. qLink                     ds.l   1        ; offset: $0 (0)
  1724. reserved1                 ds.l   1        ; offset: $4 (4)
  1725. reserved2                 ds.l   1        ; offset: $8 (8)
  1726. ioCompletion             ds.l   1        ; offset: $C (12)
  1727. ioResult                 ds.w   1        ; offset: $10 (16)
  1728. saveA5                     ds.l   1        ; offset: $12 (18)
  1729. reqCode                     ds.w   1        ; offset: $16 (22)
  1730. reserved                 ds.l   2        ; offset: $18 (24)
  1731. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1732. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1733. callID                     ds.l   1        ; offset: $26 (38)
  1734. identity                 ds.l   1        ; offset: $2A (42)
  1735. gReserved1                 ds.l   1        ; offset: $2E (46)
  1736. gReserved2                 ds.l   1        ; offset: $32 (50)
  1737. gReserved3                 ds.l   1        ; offset: $36 (54)
  1738. clientData                 ds.l   1        ; offset: $3A (58)
  1739. aRecordList                 ds.l   1        ; offset: $3E (62)        ;  --> an array of RecordID pointers 
  1740. attrTypeList             ds.l   1        ; offset: $42 (66)        ;  --> an array of attribute types 
  1741. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1742. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  1743. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  1744. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  1745. recordIDCount             ds.l   1        ; offset: $56 (86)        ;  --> 
  1746. attrTypeCount             ds.l   1        ; offset: $5A (90)        ;  --> 
  1747. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the value specified by the starting indices 
  1748. padByte                     ds.b   1        ; offset: $5F (95)
  1749. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  1750. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  1751. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  1752. startingRecordIndex         ds.l   1        ; offset: $6A (106)        ;  --> start from this record 
  1753. startingAttrTypeIndex     ds.l   1        ; offset: $6E (110)        ;  --> start from this attribute type 
  1754. startingAttribute         ds.l   14        ; offset: $72 (114)        ;  --> start from this attribute value 
  1755. pReserved                 ds.l   1        ; offset: $AA (170)        ;  --  
  1756. sizeof                     EQU *            ; size:   $AE (174)
  1757.                         ENDR
  1758.  
  1759. ; typedef struct DirLookupGetPB  DirLookupGetPB
  1760. ; The Lookup call-back functions are defined as follows: 
  1761. ; typedef ForEachLookupRecordIDUPP  ForEachLookupRecordID
  1762. ; typedef ForEachAttrTypeLookupUPP  ForEachAttrTypeLookup
  1763. ; typedef ForEachAttrValueUPP  ForEachAttrValue
  1764. ;
  1765. ;LookupParse:
  1766. ;
  1767. ;After a LookupGet call has completed, call LookupParse
  1768. ;to parse through the buffer that was filled in LookupGet.  The
  1769. ;toolbox will parse through the buffer and call the appropriate call-back routines
  1770. ;for each item in the getBuffer.
  1771. ;
  1772. ;'eachRecordID' will be called each time to return to the client one of the
  1773. ;RecordIDs from aRecordList.  The clientData parameter that you
  1774. ;pass in the parameter block will be passed to eachRecordID.
  1775. ;You are free to put anything in clientData - it is intended to allow
  1776. ;you some way to match the call-back to the original call (in case, for
  1777. ;example, you make simultaneous asynchronous LookupGet calls).  If you don't
  1778. ;want to get a call-back for each RecordID (for example, if you're looking up
  1779. ;attributes for only one RecordID), pass nil for eachRecordID.
  1780. ;
  1781. ;After forEachLocalRecordIDFunc is called, eachAttrType may be called to pass an
  1782. ;attribute type (one from attrTypeList) that exists in the record specified
  1783. ;in the last eachRecordID call.  If you don't want to get a call-back for
  1784. ;each AttributeType (for example, if you're looking up only one attribute type,
  1785. ;or you prefer to read the type from the Attribute struct during the eachAttrValue
  1786. ;call-back routine), pass nil for eachAttrType. However access controls may
  1787. ;prohibit you from reading some attribute types; in that case eachAttrValue
  1788. ;may not be called even though the value exists. Hence the client should
  1789. ;supply this call-back function to see the access controls for each attribute type.
  1790. ;
  1791. ;This will be followed by one or more calls to eachAttrValue, to pass the
  1792. ;type, tag, and attribute value.  NOTE THIS CHANGE:  you are no longer expected to
  1793. ;pass a pointer to a buffer in which to put the value.  Now you get a pointer to
  1794. ;the value, and you can process it within the call-back routine.
  1795. ;After one or more values are returned, eachAttrType may be called again to pass
  1796. ;another attribute type that exists in the last-specified RecordID.
  1797. ;
  1798. ;The client should return FALSE from eachRecordID, eachAttrType, and
  1799. ;eachAttrValue to continue processing of the LookupParse request.  Returning TRUE
  1800. ;from any call-back will terminate the LookupParse request.
  1801. ;
  1802. ;If LookupGet has failed with kOCEMoreData error, LookupParse will check to make sure that
  1803. ;ForEachAttributeValueFunc has been called at least once. If so, the client has the option
  1804. ;to continue from that attribute CreationID (for PAB/ADAP) in the next LookupGet call.
  1805. ;However, if it was not even called once, then the attribute value may be too big to fit in the
  1806. ;user's buffer. In this case, lastAttrValueCID (lastAttribute) and attrSize are returned in the
  1807. ;parse buffer and the call will fail with kOCEMoreAttrValue. However, it is possible that
  1808. ;ForEachAttributeValue was not called because the user does not have read access to some of
  1809. ;the attributeTypes in the list, and the buffer was full before even reading the creationID of
  1810. ;any of the attribute values.  A kOCEMoreData error is returned.
  1811. ;
  1812. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  1813. ;of execution as the thread that made the LookupParse call.  That means that the
  1814. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  1815. ;that were in effect when the call was made.  Because of this, the call-back
  1816. ;routine has the same restrictions as the caller of LookupParse:
  1817. ;if LookupParse was not called from interrupt level, then the call-
  1818. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  1819. ;like a ioCompletion except that A5 will be preserved for the application.
  1820. ;
  1821. DirLookupParsePB         RECORD    0
  1822. qLink                     ds.l   1        ; offset: $0 (0)
  1823. reserved1                 ds.l   1        ; offset: $4 (4)
  1824. reserved2                 ds.l   1        ; offset: $8 (8)
  1825. ioCompletion             ds.l   1        ; offset: $C (12)
  1826. ioResult                 ds.w   1        ; offset: $10 (16)
  1827. saveA5                     ds.l   1        ; offset: $12 (18)
  1828. reqCode                     ds.w   1        ; offset: $16 (22)
  1829. reserved                 ds.l   2        ; offset: $18 (24)
  1830. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1831. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1832. callID                     ds.l   1        ; offset: $26 (38)
  1833. identity                 ds.l   1        ; offset: $2A (42)
  1834. gReserved1                 ds.l   1        ; offset: $2E (46)
  1835. gReserved2                 ds.l   1        ; offset: $32 (50)
  1836. gReserved3                 ds.l   1        ; offset: $36 (54)
  1837. clientData                 ds.l   1        ; offset: $3A (58)
  1838. aRecordList                 ds.l   1        ; offset: $3E (62)        ;  --> must be same from the corresponding Get call 
  1839. attrTypeList             ds.l   1        ; offset: $42 (66)        ;  --> must be same from the corresponding Get call 
  1840. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  1841. eachRecordID             ds.l   1        ; offset: $4A (74)        ;  --> 
  1842. eachAttrType             ds.l   1        ; offset: $4E (78)        ;  --> 
  1843. eachAttrValue             ds.l   1        ; offset: $52 (82)        ;  --> 
  1844. recordIDCount             ds.l   1        ; offset: $56 (86)        ;  --> must be same from the corresponding Get call 
  1845. attrTypeCount             ds.l   1        ; offset: $5A (90)        ;  --> must be same from the corresponding Get call 
  1846. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  1847. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> must be same from the corresponding Get call
  1848. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> must be same from the corresponding Get call
  1849. lastRecordIndex             ds.l   1        ; offset: $6A (106)        ; <--  last RecordID processed when parse completed 
  1850. lastAttributeIndex         ds.l   1        ; offset: $6E (110)        ; <--  last Attribute Type processed when parse completed 
  1851. lastAttribute             ds.l   14        ; offset: $72 (114)        ; <--  last attribute value (with this CreationID) processed when parse completed 
  1852. attrSize                 ds.l   1        ; offset: $AA (170)        ; <--  length of the attribute we did not return 
  1853. sizeof                     EQU *            ; size:   $AE (174)
  1854.                         ENDR
  1855.  
  1856. ; typedef struct DirLookupParsePB  DirLookupParsePB
  1857. ; AddAttributeValue 
  1858. DirAddAttributeValuePB     RECORD    0
  1859. qLink                     ds.l   1        ; offset: $0 (0)
  1860. reserved1                 ds.l   1        ; offset: $4 (4)
  1861. reserved2                 ds.l   1        ; offset: $8 (8)
  1862. ioCompletion             ds.l   1        ; offset: $C (12)
  1863. ioResult                 ds.w   1        ; offset: $10 (16)
  1864. saveA5                     ds.l   1        ; offset: $12 (18)
  1865. reqCode                     ds.w   1        ; offset: $16 (22)
  1866. reserved                 ds.l   2        ; offset: $18 (24)
  1867. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1868. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1869. callID                     ds.l   1        ; offset: $26 (38)
  1870. identity                 ds.l   1        ; offset: $2A (42)
  1871. gReserved1                 ds.l   1        ; offset: $2E (46)
  1872. gReserved2                 ds.l   1        ; offset: $32 (50)
  1873. gReserved3                 ds.l   1        ; offset: $36 (54)
  1874. clientData                 ds.l   1        ; offset: $3A (58)
  1875. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1876. attr                     ds.l   1        ; offset: $42 (66)        ;  --> AttributeCreationID returned here 
  1877. sizeof                     EQU *            ; size:   $46 (70)
  1878.                         ENDR
  1879.  
  1880. ; typedef struct DirAddAttributeValuePB  DirAddAttributeValuePB
  1881. ;
  1882. ;aRecord must contain valid PackedRLI and a CreationID.
  1883. ;
  1884. ;Instead of passing type, length, and value in three separate
  1885. ;fields, we take a pointer to an Attribute structure that contains
  1886. ;all three, and has room for the AttributeCreationNumber.
  1887. ;The AttributeCreationID will be returned in the attr itself.
  1888. ;
  1889. ;The AttributeTag tells the catalog service that the attribute is an RString,
  1890. ;binary, or a RecordID.
  1891. ;
  1892. ;
  1893. ;DeleteAttributeType:
  1894. ;This call is provided so that an existing AttributeType can be deleted.
  1895. ;If any attribute values exist for this type, they will all be deleted
  1896. ;(if the user has access rights to delete the values) and then the attribute type
  1897. ;will be deleted. Otherwise dsAccessDenied error will be returned.
  1898. ;
  1899. DirDeleteAttributeTypePB RECORD    0
  1900. qLink                     ds.l   1        ; offset: $0 (0)
  1901. reserved1                 ds.l   1        ; offset: $4 (4)
  1902. reserved2                 ds.l   1        ; offset: $8 (8)
  1903. ioCompletion             ds.l   1        ; offset: $C (12)
  1904. ioResult                 ds.w   1        ; offset: $10 (16)
  1905. saveA5                     ds.l   1        ; offset: $12 (18)
  1906. reqCode                     ds.w   1        ; offset: $16 (22)
  1907. reserved                 ds.l   2        ; offset: $18 (24)
  1908. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1909. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1910. callID                     ds.l   1        ; offset: $26 (38)
  1911. identity                 ds.l   1        ; offset: $2A (42)
  1912. gReserved1                 ds.l   1        ; offset: $2E (46)
  1913. gReserved2                 ds.l   1        ; offset: $32 (50)
  1914. gReserved3                 ds.l   1        ; offset: $36 (54)
  1915. clientData                 ds.l   1        ; offset: $3A (58)
  1916. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  1917. attrType                 ds.l   1        ; offset: $42 (66)        ;  --> 
  1918. sizeof                     EQU *            ; size:   $46 (70)
  1919.                         ENDR
  1920.  
  1921. ; typedef struct DirDeleteAttributeTypePB  DirDeleteAttributeTypePB
  1922. ;
  1923. ;    DeleteAttributeValue
  1924. ;
  1925. DirDeleteAttributeValuePB RECORD    0
  1926. qLink                     ds.l   1        ; offset: $0 (0)
  1927. reserved1                 ds.l   1        ; offset: $4 (4)
  1928. reserved2                 ds.l   1        ; offset: $8 (8)
  1929. ioCompletion             ds.l   1        ; offset: $C (12)
  1930. ioResult                 ds.w   1        ; offset: $10 (16)
  1931. saveA5                     ds.l   1        ; offset: $12 (18)
  1932. reqCode                     ds.w   1        ; offset: $16 (22)
  1933. reserved                 ds.l   2        ; offset: $18 (24)
  1934. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1935. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1936. callID                     ds.l   1        ; offset: $26 (38)
  1937. identity                 ds.l   1        ; offset: $2A (42)
  1938. gReserved1                 ds.l   1        ; offset: $2E (46)
  1939. gReserved2                 ds.l   1        ; offset: $32 (50)
  1940. gReserved3                 ds.l   1        ; offset: $36 (54)
  1941. clientData                 ds.l   1        ; offset: $3A (58)
  1942. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  1943. attr                     ds.l   1        ; offset: $42 (66)        ;  -> 
  1944. sizeof                     EQU *            ; size:   $46 (70)
  1945.                         ENDR
  1946.  
  1947. ; typedef struct DirDeleteAttributeValuePB  DirDeleteAttributeValuePB
  1948. ;
  1949. ;    ChangeAttributeValue:
  1950. ;    currentAttr ==> the attribute to be changed. For ADAS and PAB CreationID is
  1951. ;                    sufficient
  1952. ;    newAttr     ==> new value for the attribute. For ADAS and PAB 
  1953. ;                    CreationID field will be set when
  1954. ;                    the call succeesfully completes
  1955. ;    
  1956. ;    aRecord     ==> must contain valid PackedRecordLocationInfo and a CreationID.
  1957. ;
  1958. ;
  1959. ;    
  1960. ;
  1961. DirChangeAttributeValuePB RECORD    0
  1962. qLink                     ds.l   1        ; offset: $0 (0)
  1963. reserved1                 ds.l   1        ; offset: $4 (4)
  1964. reserved2                 ds.l   1        ; offset: $8 (8)
  1965. ioCompletion             ds.l   1        ; offset: $C (12)
  1966. ioResult                 ds.w   1        ; offset: $10 (16)
  1967. saveA5                     ds.l   1        ; offset: $12 (18)
  1968. reqCode                     ds.w   1        ; offset: $16 (22)
  1969. reserved                 ds.l   2        ; offset: $18 (24)
  1970. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1971. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1972. callID                     ds.l   1        ; offset: $26 (38)
  1973. identity                 ds.l   1        ; offset: $2A (42)
  1974. gReserved1                 ds.l   1        ; offset: $2E (46)
  1975. gReserved2                 ds.l   1        ; offset: $32 (50)
  1976. gReserved3                 ds.l   1        ; offset: $36 (54)
  1977. clientData                 ds.l   1        ; offset: $3A (58)
  1978. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  1979. currentAttr                 ds.l   1        ; offset: $42 (66)        ;  -> 
  1980. newAttr                     ds.l   1        ; offset: $46 (70)        ;  -> 
  1981. sizeof                     EQU *            ; size:   $4A (74)
  1982.                         ENDR
  1983.  
  1984. ; typedef struct DirChangeAttributeValuePB  DirChangeAttributeValuePB
  1985. ; VerifyAttributeValue 
  1986. DirVerifyAttributeValuePB RECORD    0
  1987. qLink                     ds.l   1        ; offset: $0 (0)
  1988. reserved1                 ds.l   1        ; offset: $4 (4)
  1989. reserved2                 ds.l   1        ; offset: $8 (8)
  1990. ioCompletion             ds.l   1        ; offset: $C (12)
  1991. ioResult                 ds.w   1        ; offset: $10 (16)
  1992. saveA5                     ds.l   1        ; offset: $12 (18)
  1993. reqCode                     ds.w   1        ; offset: $16 (22)
  1994. reserved                 ds.l   2        ; offset: $18 (24)
  1995. serverHint                 ds     AddrBlock ; offset: $20 (32)
  1996. dsRefNum                 ds.w   1        ; offset: $24 (36)
  1997. callID                     ds.l   1        ; offset: $26 (38)
  1998. identity                 ds.l   1        ; offset: $2A (42)
  1999. gReserved1                 ds.l   1        ; offset: $2E (46)
  2000. gReserved2                 ds.l   1        ; offset: $32 (50)
  2001. gReserved3                 ds.l   1        ; offset: $36 (54)
  2002. clientData                 ds.l   1        ; offset: $3A (58)
  2003. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2004. attr                     ds.l   1        ; offset: $42 (66)        ;  --> 
  2005. sizeof                     EQU *            ; size:   $46 (70)
  2006.                         ENDR
  2007.  
  2008. ; typedef struct DirVerifyAttributeValuePB  DirVerifyAttributeValuePB
  2009. ;
  2010. ;aRecord must contain valid PackedRLI and a CreationID.
  2011. ;
  2012. ;The attribute type and value are passed in the attribute structure.  If the
  2013. ;attribute CreationID is non-zero, the server will verify that an attribute with
  2014. ;the specified value and creation number exists in aRecord.  If the attribute
  2015. ;CreationID is zero, the server will verify the attribute by type and value
  2016. ;alone, and return the attribute CreationID in the Attribute struct if the
  2017. ;attribute exists.
  2018. ;
  2019. ;
  2020. ;EnumerateAttributeTypesGet:
  2021. ;The following two calls can be used to enumerate the attribute types present in
  2022. ;a specified RecordID.  The first, EnumerateAttributeTypesGet, processes the request
  2023. ;and reads the response into getBuffer, as much as will fit.  A kOCEMoreData error will
  2024. ;be returned if the buffer was not large enough.  After this call completes, the
  2025. ;client can call EnumerateAttributeTypesParse (see below).
  2026. ;
  2027. ;The user will able to continue from a startingPoint by setting a startingAttrType.
  2028. ;Typically, this should be the last value returned in EnumerateAttributeTypesParse call
  2029. ;when 'kOCEMoreData' is returned.
  2030. ;
  2031. ;If 'includeStartingPoint' is true when a 'startingAttrType' is specified, the starting value
  2032. ;will be included in the results, if it exists. If this is set to false, this value will not
  2033. ;be included. AttributeTypes following this type will be returned.
  2034. ;
  2035. DirEnumerateAttributeTypesGetPB RECORD    0
  2036. qLink                     ds.l   1        ; offset: $0 (0)
  2037. reserved1                 ds.l   1        ; offset: $4 (4)
  2038. reserved2                 ds.l   1        ; offset: $8 (8)
  2039. ioCompletion             ds.l   1        ; offset: $C (12)
  2040. ioResult                 ds.w   1        ; offset: $10 (16)
  2041. saveA5                     ds.l   1        ; offset: $12 (18)
  2042. reqCode                     ds.w   1        ; offset: $16 (22)
  2043. reserved                 ds.l   2        ; offset: $18 (24)
  2044. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2045. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2046. callID                     ds.l   1        ; offset: $26 (38)
  2047. identity                 ds.l   1        ; offset: $2A (42)
  2048. gReserved1                 ds.l   1        ; offset: $2E (46)
  2049. gReserved2                 ds.l   1        ; offset: $32 (50)
  2050. gReserved3                 ds.l   1        ; offset: $36 (54)
  2051. clientData                 ds.l   1        ; offset: $3A (58)
  2052. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2053. startingAttrType         ds.l   1        ; offset: $42 (66)        ;  --> starting point 
  2054. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2055. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2056. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2057. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2058. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2059. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2060. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the attrType specified by starting point 
  2061. padByte                     ds.b   1        ; offset: $5F (95)
  2062. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  2063. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2064. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2065. sizeof                     EQU *            ; size:   $6A (106)
  2066.                         ENDR
  2067.  
  2068. ; typedef struct DirEnumerateAttributeTypesGetPB  DirEnumerateAttributeTypesGetPB
  2069. ; The call-back function is defined as follows: 
  2070. ; typedef ForEachAttrTypeUPP  ForEachAttrType
  2071. ;
  2072. ;EnumerateAttributeTypesParse:
  2073. ;After an EnumerateAttributeTypesGet call has completed, call EnumerateAttributeTypesParse
  2074. ;to parse through the buffer that was filled in EnumerateAttributeTypesGet.  The
  2075. ;toolbox will parse through the buffer and call the call-back routine for
  2076. ;each attribute type in the getBuffer.
  2077. ;
  2078. ;The client should return false from eachAttrType to continue
  2079. ;processing of the EnumerateAttributeTypesParse request.  Returning true will
  2080. ;terminate the EnumerateAttributeTypesParse request.  The clientData parameter that
  2081. ;you pass in the parameter block will be passed to eachAttrType.
  2082. ;You are free to put anything in clientData - it is intended to allow
  2083. ;you some way to match the call-back to the original call (in case, for
  2084. ;example, you make simultaneous asynchronous calls).
  2085. ;
  2086. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2087. ;of execution as the thread that made the EnumerateAttributeTypesParse call.  That means that the
  2088. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2089. ;that were in effect when the call was made.  Because of this, the call-back
  2090. ;routine has the same restrictions as the caller of EnumerateAttributeTypesParse.
  2091. ;If EnumerateAttributeTypesParse was not called from interrupt level, then the call-
  2092. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2093. ;like a ioCompletion except that A5 will be preserved for the application.
  2094. ;
  2095. DirEnumerateAttributeTypesParsePB RECORD    0
  2096. qLink                     ds.l   1        ; offset: $0 (0)
  2097. reserved1                 ds.l   1        ; offset: $4 (4)
  2098. reserved2                 ds.l   1        ; offset: $8 (8)
  2099. ioCompletion             ds.l   1        ; offset: $C (12)
  2100. ioResult                 ds.w   1        ; offset: $10 (16)
  2101. saveA5                     ds.l   1        ; offset: $12 (18)
  2102. reqCode                     ds.w   1        ; offset: $16 (22)
  2103. reserved                 ds.l   2        ; offset: $18 (24)
  2104. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2105. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2106. callID                     ds.l   1        ; offset: $26 (38)
  2107. identity                 ds.l   1        ; offset: $2A (42)
  2108. gReserved1                 ds.l   1        ; offset: $2E (46)
  2109. gReserved2                 ds.l   1        ; offset: $32 (50)
  2110. gReserved3                 ds.l   1        ; offset: $36 (54)
  2111. clientData                 ds.l   1        ; offset: $3A (58)
  2112. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> Same as DirEnumerateAttributeTypesGetPB 
  2113. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  2114. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2115. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2116. eachAttrType             ds.l   1        ; offset: $4E (78)        ;  --> 
  2117. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2118. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2119. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2120. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2121. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2122. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2123. sizeof                     EQU *            ; size:   $6A (106)
  2124.                         ENDR
  2125.  
  2126. ; typedef struct DirEnumerateAttributeTypesParsePB  DirEnumerateAttributeTypesParsePB
  2127. ;
  2128. ;DirAbort:
  2129. ;With this call a user will able to abort an outstanding catalog service call.
  2130. ;A user must pass a pointer to the parameter block for the outstanding call.
  2131. ;In the current version of the product, the toolbox will process this call
  2132. ;for NetSearchADAPDirectoriesGet or FindADAPDirectoryByNetSearch calls and if possible
  2133. ;it will abort. For other calls for ADAP and PAB this will return 'daAbortFailErr'.
  2134. ;For CSAM catalogs, this call will be passed to the corresponding CSAM driver.
  2135. ;The CSAM driver may process this call or may return 'daAbortFailErr'. This call can
  2136. ;be called only in synchronous mode. Since the abort call makes references to fields in
  2137. ;the pb associated with the original call, this pb must not be disposed or or altered if
  2138. ;the original call completes before the abort call has completed.
  2139. ;
  2140. DirAbortPB                 RECORD    0
  2141. qLink                     ds.l   1        ; offset: $0 (0)
  2142. reserved1                 ds.l   1        ; offset: $4 (4)
  2143. reserved2                 ds.l   1        ; offset: $8 (8)
  2144. ioCompletion             ds.l   1        ; offset: $C (12)
  2145. ioResult                 ds.w   1        ; offset: $10 (16)
  2146. saveA5                     ds.l   1        ; offset: $12 (18)
  2147. reqCode                     ds.w   1        ; offset: $16 (22)
  2148. reserved                 ds.l   2        ; offset: $18 (24)
  2149. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2150. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2151. callID                     ds.l   1        ; offset: $26 (38)
  2152. identity                 ds.l   1        ; offset: $2A (42)
  2153. gReserved1                 ds.l   1        ; offset: $2E (46)
  2154. gReserved2                 ds.l   1        ; offset: $32 (50)
  2155. gReserved3                 ds.l   1        ; offset: $36 (54)
  2156. clientData                 ds.l   1        ; offset: $3A (58)
  2157. pb                         ds.l   1        ; offset: $3E (62)        ;  --> pb for the call which must be aborted 
  2158. sizeof                     EQU *            ; size:   $42 (66)
  2159.                         ENDR
  2160.  
  2161. ; typedef struct DirAbortPB  DirAbortPB
  2162. ;
  2163. ;AddPseudonym:
  2164. ;An alternate name and type can be added to a given record. If allowDuplicate
  2165. ;is set the name and type will be added even if the same name and type already
  2166. ;exists.
  2167. ;
  2168. DirAddPseudonymPB         RECORD    0
  2169. qLink                     ds.l   1        ; offset: $0 (0)
  2170. reserved1                 ds.l   1        ; offset: $4 (4)
  2171. reserved2                 ds.l   1        ; offset: $8 (8)
  2172. ioCompletion             ds.l   1        ; offset: $C (12)
  2173. ioResult                 ds.w   1        ; offset: $10 (16)
  2174. saveA5                     ds.l   1        ; offset: $12 (18)
  2175. reqCode                     ds.w   1        ; offset: $16 (22)
  2176. reserved                 ds.l   2        ; offset: $18 (24)
  2177. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2178. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2179. callID                     ds.l   1        ; offset: $26 (38)
  2180. identity                 ds.l   1        ; offset: $2A (42)
  2181. gReserved1                 ds.l   1        ; offset: $2E (46)
  2182. gReserved2                 ds.l   1        ; offset: $32 (50)
  2183. gReserved3                 ds.l   1        ; offset: $36 (54)
  2184. clientData                 ds.l   1        ; offset: $3A (58)
  2185. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> RecordID to which pseudonym is to be added 
  2186. pseudonymName             ds.l   1        ; offset: $42 (66)        ;  --> new name to be added as pseudonym 
  2187. pseudonymType             ds.l   1        ; offset: $46 (70)        ;  --> new name to be added as pseudonym 
  2188. allowDuplicate             ds.b   1        ; offset: $4A (74)        ;  --> 
  2189. filler1                     ds.b   1        ; offset: $4B (75)
  2190. sizeof                     EQU *            ; size:   $4C (76)
  2191.                         ENDR
  2192.  
  2193. ; typedef struct DirAddPseudonymPB  DirAddPseudonymPB
  2194. ;
  2195. ;DeletePseudonym:
  2196. ;An alternate name and type for a given record can be deleted.
  2197. ;
  2198. DirDeletePseudonymPB     RECORD    0
  2199. qLink                     ds.l   1        ; offset: $0 (0)
  2200. reserved1                 ds.l   1        ; offset: $4 (4)
  2201. reserved2                 ds.l   1        ; offset: $8 (8)
  2202. ioCompletion             ds.l   1        ; offset: $C (12)
  2203. ioResult                 ds.w   1        ; offset: $10 (16)
  2204. saveA5                     ds.l   1        ; offset: $12 (18)
  2205. reqCode                     ds.w   1        ; offset: $16 (22)
  2206. reserved                 ds.l   2        ; offset: $18 (24)
  2207. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2208. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2209. callID                     ds.l   1        ; offset: $26 (38)
  2210. identity                 ds.l   1        ; offset: $2A (42)
  2211. gReserved1                 ds.l   1        ; offset: $2E (46)
  2212. gReserved2                 ds.l   1        ; offset: $32 (50)
  2213. gReserved3                 ds.l   1        ; offset: $36 (54)
  2214. clientData                 ds.l   1        ; offset: $3A (58)
  2215. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> RecordID to which pseudonym to be added 
  2216. pseudonymName             ds.l   1        ; offset: $42 (66)        ;  --> pseudonymName to be deleted 
  2217. pseudonymType             ds.l   1        ; offset: $46 (70)        ;  --> pseudonymType to be deleted 
  2218. sizeof                     EQU *            ; size:   $4A (74)
  2219.                         ENDR
  2220.  
  2221. ; typedef struct DirDeletePseudonymPB  DirDeletePseudonymPB
  2222. ;
  2223. ;    AddAlias:
  2224. ;    This call can be used to create an alias  record. The alias
  2225. ;    can be created either in the same or different cluster. ADAS will not support
  2226. ;    this call for this release. A new catalog capability flag 'kSupportsAlias' will indicate
  2227. ;    if the catalog supports this call. PAB's will support this call. For the PAB implementation,
  2228. ;    this call will create a record with the name and type specified an aRecord.
  2229. ;    This call works exactly like AddRecord.
  2230. ;    If 'allowDuplicate' is false and another record with same name and type already exists
  2231. ;    'daNoDupAllowed' error will be returned.
  2232. ;
  2233. DirAddAliasPB             RECORD    0
  2234. qLink                     ds.l   1        ; offset: $0 (0)
  2235. reserved1                 ds.l   1        ; offset: $4 (4)
  2236. reserved2                 ds.l   1        ; offset: $8 (8)
  2237. ioCompletion             ds.l   1        ; offset: $C (12)
  2238. ioResult                 ds.w   1        ; offset: $10 (16)
  2239. saveA5                     ds.l   1        ; offset: $12 (18)
  2240. reqCode                     ds.w   1        ; offset: $16 (22)
  2241. reserved                 ds.l   2        ; offset: $18 (24)
  2242. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2243. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2244. callID                     ds.l   1        ; offset: $26 (38)
  2245. identity                 ds.l   1        ; offset: $2A (42)
  2246. gReserved1                 ds.l   1        ; offset: $2E (46)
  2247. gReserved2                 ds.l   1        ; offset: $32 (50)
  2248. gReserved3                 ds.l   1        ; offset: $36 (54)
  2249. clientData                 ds.l   1        ; offset: $3A (58)
  2250. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> 
  2251. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  -> 
  2252. filler1                     ds.b   1        ; offset: $43 (67)
  2253. sizeof                     EQU *            ; size:   $44 (68)
  2254.                         ENDR
  2255.  
  2256. ; typedef struct DirAddAliasPB  DirAddAliasPB
  2257. ;
  2258. ;DirFindValue:
  2259. ;This call can be used to find the occurrence of a value. The value
  2260. ;to be matched is passed in the buffer 'matchingData' field. The current
  2261. ;ADAP/PAB implementation will match a maximum of 32 bytes of data.
  2262. ;For attribute values in the PAB/ADAP implementation, only the first 32 bytes will
  2263. ;be used for comparing the occurrence of data. Search can be restricted to
  2264. ;a particular record and/or attribute type by specifying 'aRecord' or 'aType'.
  2265. ;After finding one occurrence, 'startingRecord' and 'startingAttribute'
  2266. ;can be specified to find the next occurrence of the same value.
  2267. ;'sortDirection' can be specified with starting values to search forward or backward.
  2268. ;When a matching value is found, the 'recordFound' indicates the reccordID in which the
  2269. ;data occurrence was found, 'attributeFound' indicates the attribute with in which the
  2270. ;matching data was found. ADAP/PAB implementation returns only the type and creationID of
  2271. ;attributes. Catalogs which don't support creationIDs may return the
  2272. ;complete value; hence this call may need a buffer to hold the data. For ADAP/PAB implementations
  2273. ;the user has to make a DirLookup call to get the actual data. 'recordFound' and
  2274. ;'attributeFound' can be used to initialize 'startingRecord' and 'startingAttribute' to
  2275. ;find the next occurrence of the value.
  2276. ;
  2277. DirFindValuePB             RECORD    0
  2278. qLink                     ds.l   1        ; offset: $0 (0)
  2279. reserved1                 ds.l   1        ; offset: $4 (4)
  2280. reserved2                 ds.l   1        ; offset: $8 (8)
  2281. ioCompletion             ds.l   1        ; offset: $C (12)
  2282. ioResult                 ds.w   1        ; offset: $10 (16)
  2283. saveA5                     ds.l   1        ; offset: $12 (18)
  2284. reqCode                     ds.w   1        ; offset: $16 (22)
  2285. reserved                 ds.l   2        ; offset: $18 (24)
  2286. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2287. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2288. callID                     ds.l   1        ; offset: $26 (38)
  2289. identity                 ds.l   1        ; offset: $2A (42)
  2290. gReserved1                 ds.l   1        ; offset: $2E (46)
  2291. gReserved2                 ds.l   1        ; offset: $32 (50)
  2292. gReserved3                 ds.l   1        ; offset: $36 (54)
  2293. clientData                 ds.l   1        ; offset: $3A (58)
  2294. aRLI                     ds.l   1        ; offset: $3E (62)        ;  --> an RLI specifying the cluster to be enumerated 
  2295. aRecord                     ds.l   1        ; offset: $42 (66)        ;  --> if not nil, look only in this record 
  2296. attrType                 ds.l   1        ; offset: $46 (70)        ;  --> if not nil, look only in this attribute type 
  2297. startingRecord             ds.l   1        ; offset: $4A (74)        ;  --> record in which to start searching 
  2298. startingAttribute         ds.l   1        ; offset: $4E (78)        ;  --> attribute in which to start searching 
  2299. recordFound                 ds.l   1        ; offset: $52 (82)        ; <--  record in which data was found 
  2300. attributeFound             ds.l   14        ; offset: $56 (86)        ; <--  attribute in which data was found 
  2301. matchSize                 ds.l   1        ; offset: $8E (142)        ;  --> length of matching bytes 
  2302. matchingData             ds.l   1        ; offset: $92 (146)        ;  --> data bytes to be matched in search 
  2303. sortDirection             ds.w   1        ; offset: $96 (150)        ;  --> sort direction (forwards or backwards) 
  2304. sizeof                     EQU *            ; size:   $98 (152)
  2305.                         ENDR
  2306.  
  2307. ; typedef struct DirFindValuePB  DirFindValuePB
  2308. ;
  2309. ;EnumeratePseudonymGet:
  2310. ;This call can be used to enumerate the existing pseudonyms for
  2311. ;a given record specified in 'aRecord'. A starting point can be specified
  2312. ;by 'startingName' and 'startingType'. If the 'includeStartingPoint' boolean
  2313. ;is true and a starting point is specified, the name specified by startingName
  2314. ;and startingType also is returned in the results, if it exists. If this is set to false,
  2315. ;the pseudonym in startingName and Type is not included.
  2316. ;Pseudonyms returned in the 'getBuffer' can be extracted by making an
  2317. ;EnumeratePseudonymParse call. The results will consist of a RecordID with the
  2318. ;name and type of the pseudonym. If the buffer could not hold all the results, then
  2319. ;'kOCEMoreData' error will be returned. The user will be able to continue the call by
  2320. ;using the last result returned as starting point for the next call.
  2321. ;
  2322. DirEnumeratePseudonymGetPB RECORD    0
  2323. qLink                     ds.l   1        ; offset: $0 (0)
  2324. reserved1                 ds.l   1        ; offset: $4 (4)
  2325. reserved2                 ds.l   1        ; offset: $8 (8)
  2326. ioCompletion             ds.l   1        ; offset: $C (12)
  2327. ioResult                 ds.w   1        ; offset: $10 (16)
  2328. saveA5                     ds.l   1        ; offset: $12 (18)
  2329. reqCode                     ds.w   1        ; offset: $16 (22)
  2330. reserved                 ds.l   2        ; offset: $18 (24)
  2331. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2332. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2333. callID                     ds.l   1        ; offset: $26 (38)
  2334. identity                 ds.l   1        ; offset: $2A (42)
  2335. gReserved1                 ds.l   1        ; offset: $2E (46)
  2336. gReserved2                 ds.l   1        ; offset: $32 (50)
  2337. gReserved3                 ds.l   1        ; offset: $36 (54)
  2338. clientData                 ds.l   1        ; offset: $3A (58)
  2339. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2340. startingName             ds.l   1        ; offset: $42 (66)        ;  --> 
  2341. startingType             ds.l   1        ; offset: $46 (70)        ;  --> 
  2342. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2343. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2344. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2345. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2346. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2347. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the Pseudonym specified by starting point will be included 
  2348. padByte                     ds.b   1        ; offset: $5F (95)
  2349. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  2350. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2351. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2352. sizeof                     EQU *            ; size:   $6A (106)
  2353.                         ENDR
  2354.  
  2355. ; typedef struct DirEnumeratePseudonymGetPB  DirEnumeratePseudonymGetPB
  2356. ; The call-back function is defined as follows: 
  2357. ; typedef ForEachRecordIDUPP  ForEachRecordID
  2358. ;
  2359. ;EnumeratePseudonymParse:
  2360. ;The pseudonyms returned in the 'getBuffer' from the EnumeratePseudonymGet call
  2361. ;can be extracted by using the EnumeratePseudonymParse call. 'eachRecordID'
  2362. ;will be called for each pseudonym.
  2363. ;
  2364. ;Returning true from any call-back will terminate the EnumeratePseudonymParse call.
  2365. ;
  2366. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2367. ;of execution as the thread that made the EnumeratePseudonymParse call.  That means that the
  2368. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2369. ;that were in effect when the call was made.  Because of this, the call-back
  2370. ;routine has the same restrictions as the caller of EnumeratePseudonymParse:
  2371. ;if EnumeratePseudonymParse was not called from interrupt level, then the call-
  2372. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2373. ;like a ioCompletion except that A5 will be preserved for the application.
  2374. ;
  2375. DirEnumeratePseudonymParsePB RECORD    0
  2376. qLink                     ds.l   1        ; offset: $0 (0)
  2377. reserved1                 ds.l   1        ; offset: $4 (4)
  2378. reserved2                 ds.l   1        ; offset: $8 (8)
  2379. ioCompletion             ds.l   1        ; offset: $C (12)
  2380. ioResult                 ds.w   1        ; offset: $10 (16)
  2381. saveA5                     ds.l   1        ; offset: $12 (18)
  2382. reqCode                     ds.w   1        ; offset: $16 (22)
  2383. reserved                 ds.l   2        ; offset: $18 (24)
  2384. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2385. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2386. callID                     ds.l   1        ; offset: $26 (38)
  2387. identity                 ds.l   1        ; offset: $2A (42)
  2388. gReserved1                 ds.l   1        ; offset: $2E (46)
  2389. gReserved2                 ds.l   1        ; offset: $32 (50)
  2390. gReserved3                 ds.l   1        ; offset: $36 (54)
  2391. clientData                 ds.l   1        ; offset: $3A (58)
  2392. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> same as DirEnumerateAliasesGetPB 
  2393. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  2394. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2395. eachRecordID             ds.l   1        ; offset: $4A (74)        ;  --> 
  2396. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2397. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2398. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2399. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2400. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2401. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2402. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2403. sizeof                     EQU *            ; size:   $6A (106)
  2404.                         ENDR
  2405.  
  2406. ; typedef struct DirEnumeratePseudonymParsePB  DirEnumeratePseudonymParsePB
  2407. ; GetNameAndType 
  2408. DirGetNameAndTypePB     RECORD    0
  2409. qLink                     ds.l   1        ; offset: $0 (0)
  2410. reserved1                 ds.l   1        ; offset: $4 (4)
  2411. reserved2                 ds.l   1        ; offset: $8 (8)
  2412. ioCompletion             ds.l   1        ; offset: $C (12)
  2413. ioResult                 ds.w   1        ; offset: $10 (16)
  2414. saveA5                     ds.l   1        ; offset: $12 (18)
  2415. reqCode                     ds.w   1        ; offset: $16 (22)
  2416. reserved                 ds.l   2        ; offset: $18 (24)
  2417. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2418. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2419. callID                     ds.l   1        ; offset: $26 (38)
  2420. identity                 ds.l   1        ; offset: $2A (42)
  2421. gReserved1                 ds.l   1        ; offset: $2E (46)
  2422. gReserved2                 ds.l   1        ; offset: $32 (50)
  2423. gReserved3                 ds.l   1        ; offset: $36 (54)
  2424. clientData                 ds.l   1        ; offset: $3A (58)
  2425. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2426. sizeof                     EQU *            ; size:   $42 (66)
  2427.                         ENDR
  2428.  
  2429. ; typedef struct DirGetNameAndTypePB  DirGetNameAndTypePB
  2430. ;
  2431. ;aRecord must contain valid RLI and a CreationID.  It
  2432. ;must also contain pointers to maximum-length RStrings (name and type fields)
  2433. ;in which will be returned the record's distinguished name and type.
  2434. ;
  2435. ;
  2436. ;SetNameAndType:
  2437. ;This call can be used to change a name and type for a record. The record
  2438. ;to be renamed is specified using 'aRecord'.
  2439. ;'newName' and 'newType' indicate the name and type to be set.
  2440. ;'allowDuplicate' if true indicates that name is to be set even if another
  2441. ;name and type exactly matches the newName and newType specified.
  2442. ;
  2443. ;'newName' and 'newType' are required since the catalogs not supporting
  2444. ;CreationID require name and type fields in the recordID to identify a given
  2445. ;record.
  2446. ;
  2447. DirSetNameAndTypePB     RECORD    0
  2448. qLink                     ds.l   1        ; offset: $0 (0)
  2449. reserved1                 ds.l   1        ; offset: $4 (4)
  2450. reserved2                 ds.l   1        ; offset: $8 (8)
  2451. ioCompletion             ds.l   1        ; offset: $C (12)
  2452. ioResult                 ds.w   1        ; offset: $10 (16)
  2453. saveA5                     ds.l   1        ; offset: $12 (18)
  2454. reqCode                     ds.w   1        ; offset: $16 (22)
  2455. reserved                 ds.l   2        ; offset: $18 (24)
  2456. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2457. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2458. callID                     ds.l   1        ; offset: $26 (38)
  2459. identity                 ds.l   1        ; offset: $2A (42)
  2460. gReserved1                 ds.l   1        ; offset: $2E (46)
  2461. gReserved2                 ds.l   1        ; offset: $32 (50)
  2462. gReserved3                 ds.l   1        ; offset: $36 (54)
  2463. clientData                 ds.l   1        ; offset: $3A (58)
  2464. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2465. allowDuplicate             ds.b   1        ; offset: $42 (66)        ;  --> 
  2466. padByte                     ds.b   1        ; offset: $43 (67)
  2467. newName                     ds.l   1        ; offset: $44 (68)        ;  --> new name for the record 
  2468. newType                     ds.l   1        ; offset: $48 (72)        ;  --> new type for the record 
  2469. sizeof                     EQU *            ; size:   $4C (76)
  2470.                         ENDR
  2471.  
  2472. ; typedef struct DirSetNameAndTypePB  DirSetNameAndTypePB
  2473. ;
  2474. ;DirGetMetaRecordInfo: This call can be made to obtain
  2475. ;the MetaRecordInfo for a given record. Information returned
  2476. ;is 16 bytes of OPAQUE information about the record.
  2477. ;
  2478. DirGetRecordMetaInfoPB     RECORD    0
  2479. qLink                     ds.l   1        ; offset: $0 (0)
  2480. reserved1                 ds.l   1        ; offset: $4 (4)
  2481. reserved2                 ds.l   1        ; offset: $8 (8)
  2482. ioCompletion             ds.l   1        ; offset: $C (12)
  2483. ioResult                 ds.w   1        ; offset: $10 (16)
  2484. saveA5                     ds.l   1        ; offset: $12 (18)
  2485. reqCode                     ds.w   1        ; offset: $16 (22)
  2486. reserved                 ds.l   2        ; offset: $18 (24)
  2487. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2488. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2489. callID                     ds.l   1        ; offset: $26 (38)
  2490. identity                 ds.l   1        ; offset: $2A (42)
  2491. gReserved1                 ds.l   1        ; offset: $2E (46)
  2492. gReserved2                 ds.l   1        ; offset: $32 (50)
  2493. gReserved3                 ds.l   1        ; offset: $36 (54)
  2494. clientData                 ds.l   1        ; offset: $3A (58)
  2495. aRecord                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2496. metaInfo                 ds     DirMetaInfo ; offset: $42 (66)    ; <--  
  2497. sizeof                     EQU *            ; size:   $52 (82)
  2498.                         ENDR
  2499.  
  2500. ; typedef struct DirGetRecordMetaInfoPB  DirGetRecordMetaInfoPB
  2501. ;
  2502. ;DirGetDNodeMetaInfo: This call can be made to obtain
  2503. ;the DNodeMetaInfo for a given Packed RLI. Information returned
  2504. ;is 16 bytes of OPAQUE information about the DNode.
  2505. ;
  2506. DirGetDNodeMetaInfoPB     RECORD    0
  2507. qLink                     ds.l   1        ; offset: $0 (0)
  2508. reserved1                 ds.l   1        ; offset: $4 (4)
  2509. reserved2                 ds.l   1        ; offset: $8 (8)
  2510. ioCompletion             ds.l   1        ; offset: $C (12)
  2511. ioResult                 ds.w   1        ; offset: $10 (16)
  2512. saveA5                     ds.l   1        ; offset: $12 (18)
  2513. reqCode                     ds.w   1        ; offset: $16 (22)
  2514. reserved                 ds.l   2        ; offset: $18 (24)
  2515. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2516. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2517. callID                     ds.l   1        ; offset: $26 (38)
  2518. identity                 ds.l   1        ; offset: $2A (42)
  2519. gReserved1                 ds.l   1        ; offset: $2E (46)
  2520. gReserved2                 ds.l   1        ; offset: $32 (50)
  2521. gReserved3                 ds.l   1        ; offset: $36 (54)
  2522. clientData                 ds.l   1        ; offset: $3A (58)
  2523. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> 
  2524. metaInfo                 ds     DirMetaInfo ; offset: $42 (66)    ; <--  
  2525. sizeof                     EQU *            ; size:   $52 (82)
  2526.                         ENDR
  2527.  
  2528. ; typedef struct DirGetDNodeMetaInfoPB  DirGetDNodeMetaInfoPB
  2529. ;
  2530. ;EnumerateDirectoriesGet:
  2531. ;A user can enumerate all the catalogs installed. This includes installed
  2532. ;ADAP and CSAM catalogs. The user can specify a signature as input to restrict
  2533. ;the results. kDirADAPKind will return only ADAP catalogs, kDirDSAMKind
  2534. ;will return all CSAM catalogs. kDirAllKinds will get both ADAP & CSAM catalogs.
  2535. ;A specific signature (e.g. X.500) may be used to get catalogs with an X.500 signature.
  2536. ;The information for each catalog returned will have directoryName, discriminator and features.
  2537. ;
  2538. ;If the user receives 'noErr' or 'kOCEMoreData', the buffer will contain valid results. A user
  2539. ;can extract the results in the 'getBuffer' by making an DirEnumerateDirectories call.
  2540. ;
  2541. ;If 'kOCEMoreData' is received, the user can continue enumeration by using the last catalog and
  2542. ;discriminator as startingDirectoryName and staringDirDiscriminator in the next call.
  2543. ;
  2544. ;If 'includeStartingPoint' is true and a starting point is specified,
  2545. ;the staring point will be returned in the result. If false, it is not included.
  2546. ;
  2547. DirEnumerateDirectoriesGetPB RECORD    0
  2548. qLink                     ds.l   1        ; offset: $0 (0)
  2549. reserved1                 ds.l   1        ; offset: $4 (4)
  2550. reserved2                 ds.l   1        ; offset: $8 (8)
  2551. ioCompletion             ds.l   1        ; offset: $C (12)
  2552. ioResult                 ds.w   1        ; offset: $10 (16)
  2553. saveA5                     ds.l   1        ; offset: $12 (18)
  2554. reqCode                     ds.w   1        ; offset: $16 (22)
  2555. reserved                 ds.l   2        ; offset: $18 (24)
  2556. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2557. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2558. callID                     ds.l   1        ; offset: $26 (38)
  2559. identity                 ds.l   1        ; offset: $2A (42)
  2560. gReserved1                 ds.l   1        ; offset: $2E (46)
  2561. gReserved2                 ds.l   1        ; offset: $32 (50)
  2562. gReserved3                 ds.l   1        ; offset: $36 (54)
  2563. clientData                 ds.l   1        ; offset: $3A (58)
  2564. directoryKind             ds.l   1        ; offset: $3E (62)        ;  --> enumerate catalogs bearing this signature 
  2565. startingDirectoryName     ds.l   1        ; offset: $42 (66)        ;  --> staring catalog name 
  2566. startingDirDiscriminator ds.l   2        ; offset: $46 (70)        ;  --> staring catalog discriminator 
  2567. eReserved                 ds.l   1        ; offset: $4E (78)        ;  --  
  2568. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2569. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2570. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2571. includeStartingPoint     ds.b   1        ; offset: $5E (94)        ;  --> if true return the catalog specified by starting point 
  2572. padByte                     ds.b   1        ; offset: $5F (95)
  2573. i1Reserved                 ds.w   1        ; offset: $60 (96)        ;  --  
  2574. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2575. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2576. sizeof                     EQU *            ; size:   $6A (106)
  2577.                         ENDR
  2578.  
  2579. ; typedef struct DirEnumerateDirectoriesGetPB  DirEnumerateDirectoriesGetPB
  2580. ; typedef ForEachDirectoryUPP  ForEachDirectory
  2581. ;
  2582. ;EnumerateDirectoriesParse:
  2583. ;The catalog info returned in 'getBuffer' from the EnumerateDirectoriesGet call
  2584. ;can be extracted using the EnumerateDirectoriesParse call. 'eachDirectory' will
  2585. ;be called for each catalog.
  2586. ;
  2587. ;Returning true from any call-back will terminate the EnumerateDirectoriesParse call.
  2588. ;
  2589. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2590. ;of execution as the thread that made the EnumerateDirectoriesParse call.  That means that the
  2591. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2592. ;that were in effect when the call was made.  Because of this, the call-back
  2593. ;routine has the same restrictions as the caller of EnumerateDirectoriesParse:
  2594. ;if EnumerateDirectoriesParse was not called from interrupt level, then the call-
  2595. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2596. ;like a ioCompletion except that A5 will be preserved for the application.
  2597. ;
  2598. ;eachDirectory will be called each time to return to the client a
  2599. ;DirectoryName, DirDiscriminator, and features for that catalog.
  2600. ;
  2601. DirEnumerateDirectoriesParsePB RECORD    0
  2602. qLink                     ds.l   1        ; offset: $0 (0)
  2603. reserved1                 ds.l   1        ; offset: $4 (4)
  2604. reserved2                 ds.l   1        ; offset: $8 (8)
  2605. ioCompletion             ds.l   1        ; offset: $C (12)
  2606. ioResult                 ds.w   1        ; offset: $10 (16)
  2607. saveA5                     ds.l   1        ; offset: $12 (18)
  2608. reqCode                     ds.w   1        ; offset: $16 (22)
  2609. reserved                 ds.l   2        ; offset: $18 (24)
  2610. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2611. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2612. callID                     ds.l   1        ; offset: $26 (38)
  2613. identity                 ds.l   1        ; offset: $2A (42)
  2614. gReserved1                 ds.l   1        ; offset: $2E (46)
  2615. gReserved2                 ds.l   1        ; offset: $32 (50)
  2616. gReserved3                 ds.l   1        ; offset: $36 (54)
  2617. clientData                 ds.l   1        ; offset: $3A (58)
  2618. aReserved                 ds.l   1        ; offset: $3E (62)        ;  --  
  2619. bReserved                 ds.l   1        ; offset: $42 (66)        ;  --  
  2620. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2621. dReserved                 ds.l   1        ; offset: $4A (74)        ;  --  
  2622. eachDirectory             ds.l   1        ; offset: $4E (78)        ;  --> 
  2623. fReserved                 ds.l   1        ; offset: $52 (82)        ;  --  
  2624. gReserved                 ds.l   1        ; offset: $56 (86)        ;  --  
  2625. hReserved                 ds.l   1        ; offset: $5A (90)        ;  --  
  2626. iReserved                 ds.l   1        ; offset: $5E (94)        ;  --  
  2627. getBuffer                 ds.l   1        ; offset: $62 (98)        ;  --> 
  2628. getBufferSize             ds.l   1        ; offset: $66 (102)        ;  --> 
  2629. sizeof                     EQU *            ; size:   $6A (106)
  2630.                         ENDR
  2631.  
  2632. ; typedef struct DirEnumerateDirectoriesParsePB  DirEnumerateDirectoriesParsePB
  2633. ;
  2634. ;The Following five call are specific to ADAP Catalogs. Toolbox
  2635. ;remembers a list of catalogs across boots. If any catalog service
  2636. ;call is intended for a ADAP catalog, then it must be in the list.
  2637. ;In order for managing this list, A client (Probably DE will use these
  2638. ;calls.
  2639. ;DirAddADAPDirectoryPB: Add a new ADAP catalog to the list.
  2640. ;DirRemoveADAPDirectory: Remove a ADAP catalog from the list.
  2641. ;DirNetSearchADAPDirectoriesGet:   search an internet for adas catalogs.
  2642. ;DirNetSearchADAPDirectoriesParse: extract the results obtained NetSearchADAPDirectoriesGet.
  2643. ;DirFindADAPDirectoryByNetSearch: Find a specified catalog through net search.
  2644. ;
  2645. ;
  2646. ;NetSearchADAPDirectoriesGet:
  2647. ;This call can be used to make a network wide search for finding ADAP catalogs.
  2648. ;This call will be supported only by 'ADAP' and involve highly expensive
  2649. ;network operations, so the user is advised to use utmost discretion before
  2650. ;making this call. The results will be collected in the 'getbuffer' and can be
  2651. ;extracted using NetSearchADAPDirectoriesParse call. The directoryName,
  2652. ;the directoryDiscriminator, features and serverHint (AppleTalk address for
  2653. ;a PathFinder serving that catalog) are collected for each catalog found
  2654. ;on the network. If buffer is too small to hold all the catalogs found on
  2655. ;the network, a 'kOCEMoreData' error will be returned.
  2656. ;
  2657. DirNetSearchADAPDirectoriesGetPB RECORD    0
  2658. qLink                     ds.l   1        ; offset: $0 (0)
  2659. reserved1                 ds.l   1        ; offset: $4 (4)
  2660. reserved2                 ds.l   1        ; offset: $8 (8)
  2661. ioCompletion             ds.l   1        ; offset: $C (12)
  2662. ioResult                 ds.w   1        ; offset: $10 (16)
  2663. saveA5                     ds.l   1        ; offset: $12 (18)
  2664. reqCode                     ds.w   1        ; offset: $16 (22)
  2665. reserved                 ds.l   2        ; offset: $18 (24)
  2666. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2667. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2668. callID                     ds.l   1        ; offset: $26 (38)
  2669. identity                 ds.l   1        ; offset: $2A (42)
  2670. gReserved1                 ds.l   1        ; offset: $2E (46)
  2671. gReserved2                 ds.l   1        ; offset: $32 (50)
  2672. gReserved3                 ds.l   1        ; offset: $36 (54)
  2673. clientData                 ds.l   1        ; offset: $3A (58)
  2674. getBuffer                 ds.l   1        ; offset: $3E (62)        ;  --> 
  2675. getBufferSize             ds.l   1        ; offset: $42 (66)        ;  --> 
  2676. cReserved                 ds.l   1        ; offset: $46 (70)        ;  --  
  2677. sizeof                     EQU *            ; size:   $4A (74)
  2678.                         ENDR
  2679.  
  2680. ; typedef struct DirNetSearchADAPDirectoriesGetPB  DirNetSearchADAPDirectoriesGetPB
  2681. ; typedef ForEachADAPDirectoryUPP  ForEachADAPDirectory
  2682. ;
  2683. ;DirNetSearchADAPDirectoriesParse:
  2684. ;This call can be used to extract the results obtained in the 'getBuffer'.
  2685. ;The directoryName, directoryDiscriminator, features and
  2686. ;serverHint (AppleTalk address for a PathFinder serving that catalog) are
  2687. ;returned in each call-back. These values may be used to make an
  2688. ;AddADAPDirectory call.
  2689. ;
  2690. ;Returning TRUE from any call-back will terminate the NetSearchADAPDirectoriesParse request.
  2691. ;
  2692. ;For synchronous calls, the call-back routine actually runs as part of the same thread
  2693. ;of execution as the thread that made the DirNetSearchADAPDirectoriesParse call. That means that the
  2694. ;same low-memory globals, A5, stack, etc. are in effect during the call-back
  2695. ;that were in effect when the call was made.  Because of this, the call-back
  2696. ;routine has the same restrictions as the caller of DirNetSearchADAPDirectoriesParse:
  2697. ;if DirNetSearchADAPDirectoriesParse was not called from interrupt level, then the call-
  2698. ;back routine can allocate memory. For asynchronous calls, call-back routine is
  2699. ;like a ioCompletion except that A5 will be preserved for the application.
  2700. ;
  2701. DirNetSearchADAPDirectoriesParsePB RECORD    0
  2702. qLink                     ds.l   1        ; offset: $0 (0)
  2703. reserved1                 ds.l   1        ; offset: $4 (4)
  2704. reserved2                 ds.l   1        ; offset: $8 (8)
  2705. ioCompletion             ds.l   1        ; offset: $C (12)
  2706. ioResult                 ds.w   1        ; offset: $10 (16)
  2707. saveA5                     ds.l   1        ; offset: $12 (18)
  2708. reqCode                     ds.w   1        ; offset: $16 (22)
  2709. reserved                 ds.l   2        ; offset: $18 (24)
  2710. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2711. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2712. callID                     ds.l   1        ; offset: $26 (38)
  2713. identity                 ds.l   1        ; offset: $2A (42)
  2714. gReserved1                 ds.l   1        ; offset: $2E (46)
  2715. gReserved2                 ds.l   1        ; offset: $32 (50)
  2716. gReserved3                 ds.l   1        ; offset: $36 (54)
  2717. clientData                 ds.l   1        ; offset: $3A (58)
  2718. getBuffer                 ds.l   1        ; offset: $3E (62)        ;  --> 
  2719. getBufferSize             ds.l   1        ; offset: $42 (66)        ;  --> 
  2720. eachADAPDirectory         ds.l   1        ; offset: $46 (70)        ;  --> 
  2721. sizeof                     EQU *            ; size:   $4A (74)
  2722.                         ENDR
  2723.  
  2724. ; typedef struct DirNetSearchADAPDirectoriesParsePB  DirNetSearchADAPDirectoriesParsePB
  2725. ;
  2726. ;DirFindADAPDirectoryByNetSearch:
  2727. ;This call can be used to make a network wide search to find an ADAP catalog.
  2728. ;This call will be supported only by 'ADAP' and involves highly expensive
  2729. ;network operations, so the user is advised to use utmost discretion before
  2730. ;making this call. The catalog is specified using directoryName and discriminator.
  2731. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2732. ;list and will be visible through the EnumerateDirectories call and also
  2733. ;also a creationID to the directoryRecord will be returned.
  2734. ;If this parameter is set to 'false', the catalog will be added to temporary list
  2735. ;and will be available for making other catalog service calls. The catalogs
  2736. ;which are not in the preference catalog list will not be visible through the
  2737. ;EnumerateDirectories call.
  2738. ;
  2739. DirFindADAPDirectoryByNetSearchPB RECORD    0
  2740. qLink                     ds.l   1        ; offset: $0 (0)
  2741. reserved1                 ds.l   1        ; offset: $4 (4)
  2742. reserved2                 ds.l   1        ; offset: $8 (8)
  2743. ioCompletion             ds.l   1        ; offset: $C (12)
  2744. ioResult                 ds.w   1        ; offset: $10 (16)
  2745. saveA5                     ds.l   1        ; offset: $12 (18)
  2746. reqCode                     ds.w   1        ; offset: $16 (22)
  2747. reserved                 ds.l   2        ; offset: $18 (24)
  2748. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2749. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2750. callID                     ds.l   1        ; offset: $26 (38)
  2751. identity                 ds.l   1        ; offset: $2A (42)
  2752. gReserved1                 ds.l   1        ; offset: $2E (46)
  2753. gReserved2                 ds.l   1        ; offset: $32 (50)
  2754. gReserved3                 ds.l   1        ; offset: $36 (54)
  2755. clientData                 ds.l   1        ; offset: $3A (58)
  2756. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2757. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminate between dup catalog names 
  2758. addToOCESetup             ds.b   1        ; offset: $4A (74)        ;  --> add this catalog to OCE Setup List 
  2759. padByte                     ds.b   1        ; offset: $4B (75)
  2760. directoryRecordCID         ds.l   2        ; offset: $4C (76)        ; <--  creationID for the catalog record 
  2761. sizeof                     EQU *            ; size:   $54 (84)
  2762.                         ENDR
  2763.  
  2764. ; typedef struct DirFindADAPDirectoryByNetSearchPB  DirFindADAPDirectoryByNetSearchPB
  2765. ;
  2766. ;DirAddADAPDirectory:
  2767. ;The catalog specified by 'directoryName' and 'discriminator' will be
  2768. ;added to the list of catalogs maintained by the Toolbox. Once added,
  2769. ;the catalog is available across boots, until the catalog is removed
  2770. ;explicitly through a DirRemoveADAPDirectory call.
  2771. ;If 'serverHint' is not nil, the address provided will be used
  2772. ;to contact a PathFinder for the catalog specified.
  2773. ;If 'serverHint' is nil or does not point to a valid PathFinder server
  2774. ;for that catalog, this call will fail.
  2775. ;If 'addToOCESetup' is true, the catalog will be automatically added to the setup
  2776. ;catalog list and will be visible through EnumerateDirectories calls and
  2777. ;also a creationID to the directoryRecord will be returned.
  2778. ;If this parameter is set to 'false', catalog will be added to temprary list
  2779. ;and will be available for making other catalog service calls. The catalogs
  2780. ;which are not in the setup  list will not be visible through
  2781. ;EnumerateDirectories call.
  2782. ;
  2783. DirAddADAPDirectoryPB     RECORD    0
  2784. qLink                     ds.l   1        ; offset: $0 (0)
  2785. reserved1                 ds.l   1        ; offset: $4 (4)
  2786. reserved2                 ds.l   1        ; offset: $8 (8)
  2787. ioCompletion             ds.l   1        ; offset: $C (12)
  2788. ioResult                 ds.w   1        ; offset: $10 (16)
  2789. saveA5                     ds.l   1        ; offset: $12 (18)
  2790. reqCode                     ds.w   1        ; offset: $16 (22)
  2791. reserved                 ds.l   2        ; offset: $18 (24)
  2792. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2793. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2794. callID                     ds.l   1        ; offset: $26 (38)
  2795. identity                 ds.l   1        ; offset: $2A (42)
  2796. gReserved1                 ds.l   1        ; offset: $2E (46)
  2797. gReserved2                 ds.l   1        ; offset: $32 (50)
  2798. gReserved3                 ds.l   1        ; offset: $36 (54)
  2799. clientData                 ds.l   1        ; offset: $3A (58)
  2800. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2801. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminate between dup catalog names 
  2802. addToOCESetup             ds.b   1        ; offset: $4A (74)        ;  --> add this catalog to OCE Setup 
  2803. padByte                     ds.b   1        ; offset: $4B (75)
  2804. directoryRecordCID         ds.l   2        ; offset: $4C (76)        ; <--  creationID for the catalog record 
  2805. sizeof                     EQU *            ; size:   $54 (84)
  2806.                         ENDR
  2807.  
  2808. ; typedef struct DirAddADAPDirectoryPB  DirAddADAPDirectoryPB
  2809. ;
  2810. ;GetDirectoryInfo:
  2811. ;DirGetDirectoryInfo will do:
  2812. ;
  2813. ;If a 'dsRefNum' is non-Zero, the catalog information for
  2814. ;    the corresponding  PAB will be  returned.
  2815. ; If 'dsRefNum' is zero and 'serverHint' is non-zero, If the
  2816. ; 'serverHint' points to a valid ADAP Catalog Server(Path Finder),
  2817. ; the catalog information (i.e. directoryName, discriminator, features)
  2818. ; for that catalog will be returned.
  2819. ;    If a  valid catalog name and discriminator are provided
  2820. ;    features (Set of capability flags) for that catalog will be returned.
  2821. ;
  2822. DirGetDirectoryInfoPB     RECORD    0
  2823. qLink                     ds.l   1        ; offset: $0 (0)
  2824. reserved1                 ds.l   1        ; offset: $4 (4)
  2825. reserved2                 ds.l   1        ; offset: $8 (8)
  2826. ioCompletion             ds.l   1        ; offset: $C (12)
  2827. ioResult                 ds.w   1        ; offset: $10 (16)
  2828. saveA5                     ds.l   1        ; offset: $12 (18)
  2829. reqCode                     ds.w   1        ; offset: $16 (22)
  2830. reserved                 ds.l   2        ; offset: $18 (24)
  2831. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2832. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2833. callID                     ds.l   1        ; offset: $26 (38)
  2834. identity                 ds.l   1        ; offset: $2A (42)
  2835. gReserved1                 ds.l   1        ; offset: $2E (46)
  2836. gReserved2                 ds.l   1        ; offset: $32 (50)
  2837. gReserved3                 ds.l   1        ; offset: $36 (54)
  2838. clientData                 ds.l   1        ; offset: $3A (58)
  2839. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  2840. discriminator             ds.l   2        ; offset: $42 (66)        ; <--> descriminate between dup catalog names 
  2841. features                 ds.l   1        ; offset: $4A (74)        ; <--  capability bit flags 
  2842. sizeof                     EQU *            ; size:   $4E (78)
  2843.                         ENDR
  2844.  
  2845. ; typedef struct DirGetDirectoryInfoPB  DirGetDirectoryInfoPB
  2846. ;
  2847. ; * Note on Access Controls:
  2848. ; * Access control is based on a list model.
  2849. ; * You can get access controls list which gives dsObject and accMask for each dsObject.
  2850. ; * GetAccessControl can be limited to currently supplied identity by setting forCurrentUserOnly.
  2851. ; * There are special DSObjects are defined in ADASTypes.h for each of the category
  2852. ; * supported in ADAS Catalogs. (kOwner, kFriends, kAuthenticatedToCluster, 
  2853. ; * kAuthenticatedToDirectory, kGuest) and DUGetActlDSSpec call can be used
  2854. ; * to obtain appropraiate DSSpec before making set calls to ADAS catalogs.
  2855. ; *
  2856. ;
  2857. ;    GetDNodeAccessControlGet:
  2858. ;    This call can be done to get back access control list for a DNode.
  2859. ;    pRLI -> RLI of the DNode whose access control list is sought
  2860. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2861. ;                      the identity parameter will be returned other wise entire list
  2862. ;                      will be returned.
  2863. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2864. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2865. ;                              results.
  2866. ;                              
  2867. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2868. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2869. ;     
  2870. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2871. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2872. ;    
  2873. ;    Results returned for each DSObject will contain DSSpecPtr and three sets of access mask. 
  2874. ;
  2875. ;
  2876. DirGetDNodeAccessControlGetPB RECORD    0
  2877. qLink                     ds.l   1        ; offset: $0 (0)
  2878. reserved1                 ds.l   1        ; offset: $4 (4)
  2879. reserved2                 ds.l   1        ; offset: $8 (8)
  2880. ioCompletion             ds.l   1        ; offset: $C (12)
  2881. ioResult                 ds.w   1        ; offset: $10 (16)
  2882. saveA5                     ds.l   1        ; offset: $12 (18)
  2883. reqCode                     ds.w   1        ; offset: $16 (22)
  2884. reserved                 ds.l   2        ; offset: $18 (24)
  2885. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2886. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2887. callID                     ds.l   1        ; offset: $26 (38)
  2888. identity                 ds.l   1        ; offset: $2A (42)
  2889. gReserved1                 ds.l   1        ; offset: $2E (46)
  2890. gReserved2                 ds.l   1        ; offset: $32 (50)
  2891. gReserved3                 ds.l   1        ; offset: $36 (54)
  2892. clientData                 ds.l   1        ; offset: $3A (58)
  2893. pRLI                     ds.l   1        ; offset: $3E (62)        ;  -> RLI of the cluster whose access control list is sought  
  2894. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2895. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2896. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2897. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  2898. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2899. filler1                     ds.b   1        ; offset: $53 (83)
  2900. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2901. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  2902. ;                                                                specified in starting point 
  2903. filler2                     ds.b   1        ; offset: $59 (89)
  2904. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2905. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2906. sizeof                     EQU *            ; size:   $62 (98)
  2907.                         ENDR
  2908.  
  2909. ; typedef struct DirGetDNodeAccessControlGetPB  DirGetDNodeAccessControlGetPB
  2910. ; The Access Control call-back function is defined as follows: 
  2911. ; typedef ForEachDNodeAccessControlUPP  ForEachDNodeAccessControl
  2912. ;
  2913. ;    GetDNodeAccessControlParse:
  2914. ;    After an GetDNodeAccessControlGet call has completed, 
  2915. ;    call GetDNodeAccessControlParse to parse through the buffer that
  2916. ;    that was filled in GetDNodeAccessControlGet.
  2917. ;    
  2918. ;    'eachObject' will be called each time to return to the client a
  2919. ;    DsObject and a set of three accMasks (three long words) for that object.
  2920. ;    Acceesmasks returned apply to the dsObject in the callback :
  2921. ;    1. Currently Active Access mask for the specified DNode.
  2922. ;    2. Default Access mask for any Record in the DNode
  2923. ;    3. Default Access mask for any Attribute in the DNode
  2924. ;    The clientData parameter that you pass in the parameter block will be passed
  2925. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  2926. ;    to allow you some way to match the call-back to the original call (for
  2927. ;    example, you make more then one aysynchronous GetDNodeAccessControlGet calls and you want to
  2928. ;    associate returned results in some way).
  2929. ;    
  2930. ;    The client should return FALSE from 'eachObject' to continue
  2931. ;    processing of the GetDNodeAccessControlParse request.  Returning TRUE will
  2932. ;    terminate the GetDNodeAccessControlParse request.
  2933. ;
  2934. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  2935. ;    of execution as the thread that made the GetDNodeAccessControlParse call.  That means that the
  2936. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  2937. ;    that were in effect when the call was made.  Because of this, the call-back
  2938. ;    routine has the same restrictions as the caller of GetDNodeAccessControlParse:
  2939. ;    if GetDNodeAccessControlParse was not called from interrupt level, then the call-
  2940. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  2941. ;    like a ioCompletion except that A5 will be preserved for the application.
  2942. ;
  2943. ;
  2944. ;
  2945. DirGetDNodeAccessControlParsePB RECORD    0
  2946. qLink                     ds.l   1        ; offset: $0 (0)
  2947. reserved1                 ds.l   1        ; offset: $4 (4)
  2948. reserved2                 ds.l   1        ; offset: $8 (8)
  2949. ioCompletion             ds.l   1        ; offset: $C (12)
  2950. ioResult                 ds.w   1        ; offset: $10 (16)
  2951. saveA5                     ds.l   1        ; offset: $12 (18)
  2952. reqCode                     ds.w   1        ; offset: $16 (22)
  2953. reserved                 ds.l   2        ; offset: $18 (24)
  2954. serverHint                 ds     AddrBlock ; offset: $20 (32)
  2955. dsRefNum                 ds.w   1        ; offset: $24 (36)
  2956. callID                     ds.l   1        ; offset: $26 (38)
  2957. identity                 ds.l   1        ; offset: $2A (42)
  2958. gReserved1                 ds.l   1        ; offset: $2E (46)
  2959. gReserved2                 ds.l   1        ; offset: $32 (50)
  2960. gReserved3                 ds.l   1        ; offset: $36 (54)
  2961. clientData                 ds.l   1        ; offset: $3A (58)
  2962. pRLI                     ds.l   1        ; offset: $3E (62)        ;  -> RLI of the cluster  
  2963. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  2964. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  2965. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  2966. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  2967. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  2968. filler1                     ds.b   1        ; offset: $53 (83)
  2969. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  2970. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  2971. ;                                                        specified in starting point 
  2972. filler2                     ds.b   1        ; offset: $59 (89)
  2973. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  2974. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  2975. sizeof                     EQU *            ; size:   $62 (98)
  2976.                         ENDR
  2977.  
  2978. ; typedef struct DirGetDNodeAccessControlParsePB  DirGetDNodeAccessControlParsePB
  2979. ;
  2980. ;    GetRecordAccessControlGet:
  2981. ;    This call can be done to get back access control list for a RecordID.
  2982. ;    aRecord -> RecordID to which access control list is sought
  2983. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  2984. ;                      the identity parameter will be returned other wise entire list
  2985. ;                      will be returned.
  2986. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  2987. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  2988. ;                              results.
  2989. ;                              
  2990. ;    The results will be collected in the 'getBuffer' supplied by the user.
  2991. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  2992. ;     
  2993. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  2994. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  2995. ;    
  2996. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  2997. ;
  2998. ;
  2999. DirGetRecordAccessControlGetPB RECORD    0
  3000. qLink                     ds.l   1        ; offset: $0 (0)
  3001. reserved1                 ds.l   1        ; offset: $4 (4)
  3002. reserved2                 ds.l   1        ; offset: $8 (8)
  3003. ioCompletion             ds.l   1        ; offset: $C (12)
  3004. ioResult                 ds.w   1        ; offset: $10 (16)
  3005. saveA5                     ds.l   1        ; offset: $12 (18)
  3006. reqCode                     ds.w   1        ; offset: $16 (22)
  3007. reserved                 ds.l   2        ; offset: $18 (24)
  3008. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3009. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3010. callID                     ds.l   1        ; offset: $26 (38)
  3011. identity                 ds.l   1        ; offset: $2A (42)
  3012. gReserved1                 ds.l   1        ; offset: $2E (46)
  3013. gReserved2                 ds.l   1        ; offset: $32 (50)
  3014. gReserved3                 ds.l   1        ; offset: $36 (54)
  3015. clientData                 ds.l   1        ; offset: $3A (58)
  3016. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3017. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  3018. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3019. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3020. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  3021. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3022. filler1                     ds.b   1        ; offset: $53 (83)
  3023. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3024. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  3025. ;                                                                specified in starting point 
  3026. filler2                     ds.b   1        ; offset: $59 (89)
  3027. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3028. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3029. sizeof                     EQU *            ; size:   $62 (98)
  3030.                         ENDR
  3031.  
  3032. ; typedef struct DirGetRecordAccessControlGetPB  DirGetRecordAccessControlGetPB
  3033. ; The Access Control call-back function is defined as follows: 
  3034. ; typedef ForEachRecordAccessControlUPP  ForEachRecordAccessControl
  3035. ;
  3036. ;    GetRecordAccessControlParse:
  3037. ;    After an GetRecordAccessControlGet call has completed, 
  3038. ;    call GetRecordAccessControlParse to parse through the buffer that
  3039. ;    that was filled in GetRecordAccessControlGet.
  3040. ;    
  3041. ;    'eachObject' will be called each time to return to the client a
  3042. ;    DsObject and a set of three accMasks (three long words) for that object.
  3043. ;    Acceesmasks returned apply to the dsObject in the callback :
  3044. ;    1. Active Access mask for the DNode Containing the Record.
  3045. ;    2. Active Access mask for the Record specified.
  3046. ;    3. Defualt Access mask for Attributes in the record.
  3047. ;    The clientData parameter that you pass in the parameter block will be passed
  3048. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3049. ;    to allow you some way to match the call-back to the original call (for
  3050. ;    example, you make more then one aysynchronous GetRecordAccessControlGet calls and you want to
  3051. ;    associate returned results in some way).
  3052. ;    
  3053. ;    The client should return FALSE from 'eachObject' to continue
  3054. ;    processing of the GetRecordAccessControlParse request.  Returning TRUE will
  3055. ;    terminate the GetRecordAccessControlParse request.
  3056. ;
  3057. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3058. ;    of execution as the thread that made the GetRecordAccessControlParse call.  That means that the
  3059. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3060. ;    that were in effect when the call was made.  Because of this, the call-back
  3061. ;    routine has the same restrictions as the caller of GetRecordAccessControlParse:
  3062. ;    if GetRecordAccessControlParse was not called from interrupt level, then the call-
  3063. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3064. ;    like a ioCompletion except that A5 will be preserved for the application.
  3065. ;
  3066. ;
  3067. ;
  3068. DirGetRecordAccessControlParsePB RECORD    0
  3069. qLink                     ds.l   1        ; offset: $0 (0)
  3070. reserved1                 ds.l   1        ; offset: $4 (4)
  3071. reserved2                 ds.l   1        ; offset: $8 (8)
  3072. ioCompletion             ds.l   1        ; offset: $C (12)
  3073. ioResult                 ds.w   1        ; offset: $10 (16)
  3074. saveA5                     ds.l   1        ; offset: $12 (18)
  3075. reqCode                     ds.w   1        ; offset: $16 (22)
  3076. reserved                 ds.l   2        ; offset: $18 (24)
  3077. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3078. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3079. callID                     ds.l   1        ; offset: $26 (38)
  3080. identity                 ds.l   1        ; offset: $2A (42)
  3081. gReserved1                 ds.l   1        ; offset: $2E (46)
  3082. gReserved2                 ds.l   1        ; offset: $32 (50)
  3083. gReserved3                 ds.l   1        ; offset: $36 (54)
  3084. clientData                 ds.l   1        ; offset: $3A (58)
  3085. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3086. bReserved                 ds.l   1        ; offset: $42 (66)        ;  -- unused 
  3087. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3088. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3089. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  3090. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3091. filler1                     ds.b   1        ; offset: $53 (83)
  3092. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3093. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  3094. ;                                                        specified in starting point 
  3095. filler2                     ds.b   1        ; offset: $59 (89)
  3096. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3097. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3098. sizeof                     EQU *            ; size:   $62 (98)
  3099.                         ENDR
  3100.  
  3101. ; typedef struct DirGetRecordAccessControlParsePB  DirGetRecordAccessControlParsePB
  3102. ;
  3103. ;    GetAttributeAccessControlGet:
  3104. ;    This call can be done to get back access control list for a attributeType with in a RecordID.
  3105. ;    aRecord -> RecordID to which access control list is sought
  3106. ;    aType    -> Attribute Type to which access controls are sought
  3107. ;    curUserAccMask -> If this is 'true', Access controls for the user specified by
  3108. ;                      the identity parameter will be returned other wise entire list
  3109. ;                      will be returned.
  3110. ;    startingDsObj  -> If this is not nil, list should be started after this object.
  3111. ;    startingPointInclusive -> If staringDsObj is specified, include that in the returned
  3112. ;                              results.
  3113. ;                              
  3114. ;    The results will be collected in the 'getBuffer' supplied by the user.
  3115. ;    If buffer can not hold all the data returned 'daMoreData' error will be returned.
  3116. ;     
  3117. ;    If user receives 'noErr' or 'daMoreData', buffer will contain valid results. A user
  3118. ;    can extract the results in the 'getBuffer' by making 'DsGetDNodeAccessControlParse' call.
  3119. ;    
  3120. ;    Results returned for each DSObject will contain DSSpecPtr and accMask. 
  3121. ;
  3122. ;
  3123. DirGetAttributeAccessControlGetPB RECORD    0
  3124. qLink                     ds.l   1        ; offset: $0 (0)
  3125. reserved1                 ds.l   1        ; offset: $4 (4)
  3126. reserved2                 ds.l   1        ; offset: $8 (8)
  3127. ioCompletion             ds.l   1        ; offset: $C (12)
  3128. ioResult                 ds.w   1        ; offset: $10 (16)
  3129. saveA5                     ds.l   1        ; offset: $12 (18)
  3130. reqCode                     ds.w   1        ; offset: $16 (22)
  3131. reserved                 ds.l   2        ; offset: $18 (24)
  3132. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3133. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3134. callID                     ds.l   1        ; offset: $26 (38)
  3135. identity                 ds.l   1        ; offset: $2A (42)
  3136. gReserved1                 ds.l   1        ; offset: $2E (46)
  3137. gReserved2                 ds.l   1        ; offset: $32 (50)
  3138. gReserved3                 ds.l   1        ; offset: $36 (54)
  3139. clientData                 ds.l   1        ; offset: $3A (58)
  3140. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3141. aType                     ds.l   1        ; offset: $42 (66)        ;  -> Attribute Type to which access controls are sought          
  3142. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3143. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3144. eResreved                 ds.l   1        ; offset: $4E (78)        ; --> 
  3145. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3146. filler1                     ds.b   1        ; offset: $53 (83)
  3147. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3148. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the DsObject 
  3149. ;                                                                specified in starting point 
  3150. filler2                     ds.b   1        ; offset: $59 (89)
  3151. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3152. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3153. sizeof                     EQU *            ; size:   $62 (98)
  3154.                         ENDR
  3155.  
  3156. ; typedef struct DirGetAttributeAccessControlGetPB  DirGetAttributeAccessControlGetPB
  3157. ; The Access Control call-back function is defined as follows: 
  3158. ; typedef ForEachAttributeAccessControlUPP  ForEachAttributeAccessControl
  3159. ;
  3160. ;    GetAttributeAccessControlParse:
  3161. ;    After an GetAttributeAccessControlGet call has completed, 
  3162. ;    call GetAttributeAccessControlParse to parse through the buffer that
  3163. ;    that was filled in GetAttributeAccessControlGet.
  3164. ;    
  3165. ;    'eachObject' will be called each time to return to the client a
  3166. ;    DsObject and a set of three accMasks (three long words) for that object.
  3167. ;    Acceesmasks returned apply to the dsObject in the callback :
  3168. ;    1. Active Access mask for the DNode Containing the Attribute.
  3169. ;    2. Active Access mask for the Record in the Containing the Attribute.
  3170. ;    3. Active Access mask for the specified Attribute.
  3171. ;    The clientData parameter that you pass in the parameter block will be passed
  3172. ;    to 'eachObject'.  You are free to put anything in clientData - it is intended
  3173. ;    to allow you some way to match the call-back to the original call (for
  3174. ;    example, you make more then one aysynchronous GetAttributeAccessControlGet calls and you want to
  3175. ;    associate returned results in some way).
  3176. ;    
  3177. ;    The client should return FALSE from 'eachObject' to continue
  3178. ;    processing of the GetAttributeAccessControlParse request.  Returning TRUE will
  3179. ;    terminate the GetAttributeAccessControlParse request.
  3180. ;
  3181. ;    For synchronous calls, the call-back routine actually runs as part of the same thread 
  3182. ;    of execution as the thread that made the GetAttributeAccessControlParse call.  That means that the
  3183. ;    same low-memory globals, A5, stack, etc. are in effect during the call-back
  3184. ;    that were in effect when the call was made.  Because of this, the call-back
  3185. ;    routine has the same restrictions as the caller of GetAttributeAccessControlParse:
  3186. ;    if GetAttributeAccessControlParse was not called from interrupt level, then the call-
  3187. ;    back routine can allocate memory. For asynchronous calls, call-back routine is
  3188. ;    like a ioCompletion except that A5 will be preserved for the application.
  3189. ;
  3190. ;
  3191. ;
  3192. DirGetAttributeAccessControlParsePB RECORD    0
  3193. qLink                     ds.l   1        ; offset: $0 (0)
  3194. reserved1                 ds.l   1        ; offset: $4 (4)
  3195. reserved2                 ds.l   1        ; offset: $8 (8)
  3196. ioCompletion             ds.l   1        ; offset: $C (12)
  3197. ioResult                 ds.w   1        ; offset: $10 (16)
  3198. saveA5                     ds.l   1        ; offset: $12 (18)
  3199. reqCode                     ds.w   1        ; offset: $16 (22)
  3200. reserved                 ds.l   2        ; offset: $18 (24)
  3201. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3202. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3203. callID                     ds.l   1        ; offset: $26 (38)
  3204. identity                 ds.l   1        ; offset: $2A (42)
  3205. gReserved1                 ds.l   1        ; offset: $2E (46)
  3206. gReserved2                 ds.l   1        ; offset: $32 (50)
  3207. gReserved3                 ds.l   1        ; offset: $36 (54)
  3208. clientData                 ds.l   1        ; offset: $3A (58)
  3209. aRecord                     ds.l   1        ; offset: $3E (62)        ;  -> RecordID to which access control list is sought list is sought  
  3210. aType                     ds.l   1        ; offset: $42 (66)        ;  -> Attribute Type to which access controls are sought          
  3211. cReserved                 ds.l   1        ; offset: $46 (70)        ;  -- unused 
  3212. dReserved                 ds.l   1        ; offset: $4A (74)        ;  -- unused 
  3213. eachObject                 ds.l   1        ; offset: $4E (78)        ; --> 
  3214. forCurrentUserOnly         ds.b   1        ; offset: $52 (82)        ; -->  
  3215. filler1                     ds.b   1        ; offset: $53 (83)
  3216. startingPoint             ds.l   1        ; offset: $54 (84)        ; --> starting Point 
  3217. includeStartingPoint     ds.b   1        ; offset: $58 (88)        ;  -> if true return the record 
  3218. ;                                                        specified in starting point 
  3219. filler2                     ds.b   1        ; offset: $59 (89)
  3220. getBuffer                 ds.l   1        ; offset: $5A (90)        ;    -> 
  3221. getBufferSize             ds.l   1        ; offset: $5E (94)        ;  -> 
  3222. sizeof                     EQU *            ; size:   $62 (98)
  3223.                         ENDR
  3224.  
  3225. ; typedef struct DirGetAttributeAccessControlParsePB  DirGetAttributeAccessControlParsePB
  3226. ;
  3227. ;MapPathNameToDNodeNumber:
  3228. ;This call maps a given PathName within a catalog to its DNodeNumber.
  3229. ;
  3230. DirMapPathNameToDNodeNumberPB RECORD    0
  3231. qLink                     ds.l   1        ; offset: $0 (0)
  3232. reserved1                 ds.l   1        ; offset: $4 (4)
  3233. reserved2                 ds.l   1        ; offset: $8 (8)
  3234. ioCompletion             ds.l   1        ; offset: $C (12)
  3235. ioResult                 ds.w   1        ; offset: $10 (16)
  3236. saveA5                     ds.l   1        ; offset: $12 (18)
  3237. reqCode                     ds.w   1        ; offset: $16 (22)
  3238. reserved                 ds.l   2        ; offset: $18 (24)
  3239. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3240. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3241. callID                     ds.l   1        ; offset: $26 (38)
  3242. identity                 ds.l   1        ; offset: $2A (42)
  3243. gReserved1                 ds.l   1        ; offset: $2E (46)
  3244. gReserved2                 ds.l   1        ; offset: $32 (50)
  3245. gReserved3                 ds.l   1        ; offset: $36 (54)
  3246. clientData                 ds.l   1        ; offset: $3A (58)
  3247. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3248. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3249. dNodeNumber                 ds.l   1        ; offset: $4A (74)        ; <--  dNodenumber to the path 
  3250. path                     ds.l   1        ; offset: $4E (78)        ;  --> Path Name to be mapped 
  3251. sizeof                     EQU *            ; size:   $52 (82)
  3252.                         ENDR
  3253.  
  3254. ; typedef struct DirMapPathNameToDNodeNumberPB  DirMapPathNameToDNodeNumberPB
  3255. ;
  3256. ;PathName in the path field will be mapped to the cooresponding dNodeNumber and
  3257. ;returned in the DNodeNumber field. directoryName and descriminator Fields are
  3258. ;ignored. DSRefNum is used to identify the catalog.
  3259. ;
  3260. ;
  3261. ;MapDNodeNumberToPathName:
  3262. ;This call will map a given DNodeNumber with in a catalog to the
  3263. ;corresponding PathName.
  3264. ;
  3265. DirMapDNodeNumberToPathNamePB RECORD    0
  3266. qLink                     ds.l   1        ; offset: $0 (0)
  3267. reserved1                 ds.l   1        ; offset: $4 (4)
  3268. reserved2                 ds.l   1        ; offset: $8 (8)
  3269. ioCompletion             ds.l   1        ; offset: $C (12)
  3270. ioResult                 ds.w   1        ; offset: $10 (16)
  3271. saveA5                     ds.l   1        ; offset: $12 (18)
  3272. reqCode                     ds.w   1        ; offset: $16 (22)
  3273. reserved                 ds.l   2        ; offset: $18 (24)
  3274. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3275. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3276. callID                     ds.l   1        ; offset: $26 (38)
  3277. identity                 ds.l   1        ; offset: $2A (42)
  3278. gReserved1                 ds.l   1        ; offset: $2E (46)
  3279. gReserved2                 ds.l   1        ; offset: $32 (50)
  3280. gReserved3                 ds.l   1        ; offset: $36 (54)
  3281. clientData                 ds.l   1        ; offset: $3A (58)
  3282. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3283. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3284. dNodeNumber                 ds.l   1        ; offset: $4A (74)        ;  --> dNodenumber to be mapped 
  3285. path                     ds.l   1        ; offset: $4E (78)        ; <--  Packed Path Name returned 
  3286. lengthOfPathName         ds.w   1        ; offset: $52 (82)        ;  --> length of packed pathName structure
  3287. sizeof                     EQU *            ; size:   $54 (84)
  3288.                         ENDR
  3289.  
  3290. ; typedef struct DirMapDNodeNumberToPathNamePB  DirMapDNodeNumberToPathNamePB
  3291. ;
  3292. ;dNodeNumber in the DNodeNumber field will be mapped to the cooresponding
  3293. ;pathName and returned in the PackedPathName field.
  3294. ;lengthOfPathName is to be set the length of pathName structure.
  3295. ;If length of PackedPathName is larger then the lengthOfPathName, kOCEMoreData
  3296. ;OSErr will be returned.
  3297. ;
  3298. ;
  3299. ;GetLocalNetworkSpec:
  3300. ;This call will return the Local NetworkSpec. Client should supply
  3301. ;an RString big enough to hold the NetworkSpec.
  3302. ;
  3303. DirGetLocalNetworkSpecPB RECORD    0
  3304. qLink                     ds.l   1        ; offset: $0 (0)
  3305. reserved1                 ds.l   1        ; offset: $4 (4)
  3306. reserved2                 ds.l   1        ; offset: $8 (8)
  3307. ioCompletion             ds.l   1        ; offset: $C (12)
  3308. ioResult                 ds.w   1        ; offset: $10 (16)
  3309. saveA5                     ds.l   1        ; offset: $12 (18)
  3310. reqCode                     ds.w   1        ; offset: $16 (22)
  3311. reserved                 ds.l   2        ; offset: $18 (24)
  3312. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3313. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3314. callID                     ds.l   1        ; offset: $26 (38)
  3315. identity                 ds.l   1        ; offset: $2A (42)
  3316. gReserved1                 ds.l   1        ; offset: $2E (46)
  3317. gReserved2                 ds.l   1        ; offset: $32 (50)
  3318. gReserved3                 ds.l   1        ; offset: $36 (54)
  3319. clientData                 ds.l   1        ; offset: $3A (58)
  3320. directoryName             ds.l   1        ; offset: $3E (62)        ;  --> catalog name 
  3321. discriminator             ds.l   2        ; offset: $42 (66)        ;  --> discriminator 
  3322. networkSpec                 ds.l   1        ; offset: $4A (74)        ; <--  NetworkSpec 
  3323. sizeof                     EQU *            ; size:   $4E (78)
  3324.                         ENDR
  3325.  
  3326. ; typedef struct DirGetLocalNetworkSpecPB  DirGetLocalNetworkSpecPB
  3327. ;
  3328. ;PathName in the path field must be set to nil. internetName should be large
  3329. ;enough to hold the internetName. InterNetname returned indicates path finder's
  3330. ;local internet (configured by administrator).
  3331. ;
  3332. ;
  3333. ;GetDNodeInfo:
  3334. ;This call will return the information (internetName and descriptor)
  3335. ;for the given RLI of a DNode.
  3336. ;
  3337. DirGetDNodeInfoPB         RECORD    0
  3338. qLink                     ds.l   1        ; offset: $0 (0)
  3339. reserved1                 ds.l   1        ; offset: $4 (4)
  3340. reserved2                 ds.l   1        ; offset: $8 (8)
  3341. ioCompletion             ds.l   1        ; offset: $C (12)
  3342. ioResult                 ds.w   1        ; offset: $10 (16)
  3343. saveA5                     ds.l   1        ; offset: $12 (18)
  3344. reqCode                     ds.w   1        ; offset: $16 (22)
  3345. reserved                 ds.l   2        ; offset: $18 (24)
  3346. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3347. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3348. callID                     ds.l   1        ; offset: $26 (38)
  3349. identity                 ds.l   1        ; offset: $2A (42)
  3350. gReserved1                 ds.l   1        ; offset: $2E (46)
  3351. gReserved2                 ds.l   1        ; offset: $32 (50)
  3352. gReserved3                 ds.l   1        ; offset: $36 (54)
  3353. clientData                 ds.l   1        ; offset: $3A (58)
  3354. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI whose info is requested 
  3355. descriptor                 ds.l   1        ; offset: $42 (66)        ; <--  dNode descriptor 
  3356. networkSpec                 ds.l   1        ; offset: $46 (70)        ; <--  cluster's networkSpec if kIsCluster 
  3357. sizeof                     EQU *            ; size:   $4A (74)
  3358.                         ENDR
  3359.  
  3360. ; typedef struct DirGetDNodeInfoPB  DirGetDNodeInfoPB
  3361. ;
  3362. ;If DnodeNumber is set to a non zero value, path should be set to nil.
  3363. ;if DnodeNumber is set to zero, pathName should point to a packed path name.
  3364. ;internetName should be large enough to hold
  3365. ;the internetName. (If the internetName is same as the one got by
  3366. ;GetLocalInternetName call, it indicates cluster is reachable  without
  3367. ;forwarders, --> Tell me if I am wrong)
  3368. ;
  3369. ;
  3370. ;DirCreatePersonalDirectory:
  3371. ;A new  personal catalog can be created by specifying an FSSpec for
  3372. ;the file. If a file already exists dupFNErr will be returned. This call is
  3373. ;supported 'synchronous' mode only.
  3374. ;
  3375. DirCreatePersonalDirectoryPB RECORD    0
  3376. qLink                     ds.l   1        ; offset: $0 (0)
  3377. reserved1                 ds.l   1        ; offset: $4 (4)
  3378. reserved2                 ds.l   1        ; offset: $8 (8)
  3379. ioCompletion             ds.l   1        ; offset: $C (12)
  3380. ioResult                 ds.w   1        ; offset: $10 (16)
  3381. saveA5                     ds.l   1        ; offset: $12 (18)
  3382. reqCode                     ds.w   1        ; offset: $16 (22)
  3383. reserved                 ds.l   2        ; offset: $18 (24)
  3384. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3385. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3386. callID                     ds.l   1        ; offset: $26 (38)
  3387. identity                 ds.l   1        ; offset: $2A (42)
  3388. gReserved1                 ds.l   1        ; offset: $2E (46)
  3389. gReserved2                 ds.l   1        ; offset: $32 (50)
  3390. gReserved3                 ds.l   1        ; offset: $36 (54)
  3391. clientData                 ds.l   1        ; offset: $3A (58)
  3392. fsSpec                     ds.l   1        ; offset: $3E (62)        ;  --> FSSpec for the Personal Catalog 
  3393. fdType                     ds.l   1        ; offset: $42 (66)        ;  --> file type for the Personal Catalog 
  3394. fdCreator                 ds.l   1        ; offset: $46 (70)        ;  --> file creator for the Personal Catalog 
  3395. sizeof                     EQU *            ; size:   $4A (74)
  3396.                         ENDR
  3397.  
  3398. ; typedef struct DirCreatePersonalDirectoryPB  DirCreatePersonalDirectoryPB
  3399. ;
  3400. ;DirOpenPersonalDirectory:
  3401. ;An existing personal catalog can be opened using this call.
  3402. ;User can specify the personal catalog by FSSpec for the AddressBook file.
  3403. ;'accessRequested' field specifies open permissions. 'fsRdPerm'  & 'fsRdWrPerm'
  3404. ;are the only accepted open modes for the address book.
  3405. ;When the call completes successfully, a dsRefNum will be returned. The 'dsRefNum'
  3406. ;field is in the DSParamBlockHeader. In addittion 'accessGranted' indicates
  3407. ;actual permission with personal catalog is opened and 'features' indicate the capabilty flags
  3408. ;associated with the personal catalog.
  3409. ;This call is supported 'synchronous' mode only.
  3410. ;
  3411. DirOpenPersonalDirectoryPB RECORD    0
  3412. qLink                     ds.l   1        ; offset: $0 (0)
  3413. reserved1                 ds.l   1        ; offset: $4 (4)
  3414. reserved2                 ds.l   1        ; offset: $8 (8)
  3415. ioCompletion             ds.l   1        ; offset: $C (12)
  3416. ioResult                 ds.w   1        ; offset: $10 (16)
  3417. saveA5                     ds.l   1        ; offset: $12 (18)
  3418. reqCode                     ds.w   1        ; offset: $16 (22)
  3419. reserved                 ds.l   2        ; offset: $18 (24)
  3420. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3421. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3422. callID                     ds.l   1        ; offset: $26 (38)
  3423. identity                 ds.l   1        ; offset: $2A (42)
  3424. gReserved1                 ds.l   1        ; offset: $2E (46)
  3425. gReserved2                 ds.l   1        ; offset: $32 (50)
  3426. gReserved3                 ds.l   1        ; offset: $36 (54)
  3427. clientData                 ds.l   1        ; offset: $3A (58)
  3428. fsSpec                     ds.l   1        ; offset: $3E (62)        ;  --> Open an existing Personal Catalog 
  3429. accessRequested             ds.b   1        ; offset: $42 (66)        ;  --> Open: permissions Requested(byte)
  3430. accessGranted             ds.b   1        ; offset: $43 (67)        ;  <-- Open: permissions (byte) (Granted)
  3431. features                 ds.l   1        ; offset: $44 (68)        ; <--  features for Personal Catalog 
  3432. sizeof                     EQU *            ; size:   $48 (72)
  3433.                         ENDR
  3434.  
  3435. ; typedef struct DirOpenPersonalDirectoryPB  DirOpenPersonalDirectoryPB
  3436. ;
  3437. ;DirClosePersonalDirectory: This call lets a client close AddressBook opened by DirOpenPersonalDirectory.
  3438. ;The Personal Catalog specified by the 'dsRefNum' will be closed.
  3439. ;This call is supported 'synchronous' mode only.
  3440. ;
  3441. DirClosePersonalDirectoryPB RECORD    0
  3442. qLink                     ds.l   1        ; offset: $0 (0)
  3443. reserved1                 ds.l   1        ; offset: $4 (4)
  3444. reserved2                 ds.l   1        ; offset: $8 (8)
  3445. ioCompletion             ds.l   1        ; offset: $C (12)
  3446. ioResult                 ds.w   1        ; offset: $10 (16)
  3447. saveA5                     ds.l   1        ; offset: $12 (18)
  3448. reqCode                     ds.w   1        ; offset: $16 (22)
  3449. reserved                 ds.l   2        ; offset: $18 (24)
  3450. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3451. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3452. callID                     ds.l   1        ; offset: $26 (38)
  3453. identity                 ds.l   1        ; offset: $2A (42)
  3454. gReserved1                 ds.l   1        ; offset: $2E (46)
  3455. gReserved2                 ds.l   1        ; offset: $32 (50)
  3456. gReserved3                 ds.l   1        ; offset: $36 (54)
  3457. clientData                 ds.l   1        ; offset: $3A (58)
  3458. sizeof                     EQU *            ; size:   $3E (62)
  3459.                         ENDR
  3460.  
  3461. ; typedef struct DirClosePersonalDirectoryPB  DirClosePersonalDirectoryPB
  3462. ;
  3463. ;DirMakePersonalDirectoryRLI: With this call a client can make an RLI
  3464. ;for a Personal Catalog opened by DirOpenPersonalDirectory Call.
  3465. ;A packed RLI is created for the Personal Catalog specified by the 'dsRefNum'.
  3466. ;If a client has a need to make the AddressBook reference to persistent
  3467. ;acrross boots it should make use of this call. In the current implementaion
  3468. ;PackedRLI has an embeeded System7.0 'alias'. If in later time
  3469. ;If client has a need to make reference to the AddressBook, it must use
  3470. ;ADAPLibrary call 'DUExtractAlias' and resole the 'alias' to 'FSSpec' and
  3471. ;make DirOpenPersonalDirectory call to get a 'dsRefNum'.
  3472. ;  'fromFSSpec'            FSPecPtr from which relative alias to be created. If nil,
  3473. ;                        absolute alias is created.
  3474. ; 'pRLIBufferSize' indicates the size of buffer pointed by 'pRLI'
  3475. ; 'pRLISize'    indicates the actual length of 'pRLI'. If the call
  3476. ;                        fails with 'kOCEMoreData' error a client can reissue
  3477. ;                    this call with a larger buffer of this length.
  3478. ;  'pRLI' is pointer to the buffer in which 'PackedRLI' is
  3479. ;  returned.
  3480. ;This call is supported in 'synchronous' mode only.
  3481. ;
  3482. DirMakePersonalDirectoryRLIPB RECORD    0
  3483. qLink                     ds.l   1        ; offset: $0 (0)
  3484. reserved1                 ds.l   1        ; offset: $4 (4)
  3485. reserved2                 ds.l   1        ; offset: $8 (8)
  3486. ioCompletion             ds.l   1        ; offset: $C (12)
  3487. ioResult                 ds.w   1        ; offset: $10 (16)
  3488. saveA5                     ds.l   1        ; offset: $12 (18)
  3489. reqCode                     ds.w   1        ; offset: $16 (22)
  3490. reserved                 ds.l   2        ; offset: $18 (24)
  3491. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3492. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3493. callID                     ds.l   1        ; offset: $26 (38)
  3494. identity                 ds.l   1        ; offset: $2A (42)
  3495. gReserved1                 ds.l   1        ; offset: $2E (46)
  3496. gReserved2                 ds.l   1        ; offset: $32 (50)
  3497. gReserved3                 ds.l   1        ; offset: $36 (54)
  3498. clientData                 ds.l   1        ; offset: $3A (58)
  3499. fromFSSpec                 ds.l   1        ; offset: $3E (62)        ;  --> FSSpec for creating relative alia 
  3500. pRLIBufferSize             ds.w   1        ; offset: $42 (66)        ;  --> Length of 'pRLI' buffer 
  3501. pRLISize                 ds.w   1        ; offset: $44 (68)        ; <--  Length of actual 'pRLI' 
  3502. pRLI                     ds.l   1        ; offset: $46 (70)        ; <--  pRLI for the specified AddressBook 
  3503. sizeof                     EQU *            ; size:   $4A (74)
  3504.                         ENDR
  3505.  
  3506. ; typedef struct DirMakePersonalDirectoryRLIPB  DirMakePersonalDirectoryRLIPB
  3507. ;****************************************************************************
  3508. ;The calls described below apply only for CSAM Drivers:
  3509. ;
  3510. ;The following three calls provide capability to Install/Remove a CSAM at RunTime.
  3511. ;    DirAddDSAM
  3512. ;    DirRemoveDSAM
  3513. ;    DirInstantiateDSAM
  3514. ;
  3515. ;The following two calls provide capability to Install/Remove a CSAM Catalog at RunTime.
  3516. ;    DirAddDSAMDirectory
  3517. ;    DirRemoveDirectory
  3518. ;
  3519. ;DirGetDirectoryIcon call is used by clients to get any special icon associated
  3520. ;with a CSAM catalog.
  3521. ;
  3522. ;****************************************************************************
  3523. ;
  3524. ;DirAddDSAM: This call can be used to inorm the availability of a CSAM file
  3525. ;after discovering the CSAM file.
  3526. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3527. ;    dsamSignature -> could be generic CSAM kind e.g. 'X500'.
  3528. ;    fsSpec -> is the FileSpec for the file containing CSAM resources.
  3529. ;If the call is successfull 'DSAMRecordCID' will be returned. If the
  3530. ;call returns 'daDSAMRecordCIDExists', record was already there and
  3531. ;'dsamRecordCID' will be returned.
  3532. ;This call can be done only in synchronous mode.
  3533. ;
  3534. DirAddDSAMPB             RECORD    0
  3535. qLink                     ds.l   1        ; offset: $0 (0)
  3536. reserved1                 ds.l   1        ; offset: $4 (4)
  3537. reserved2                 ds.l   1        ; offset: $8 (8)
  3538. ioCompletion             ds.l   1        ; offset: $C (12)
  3539. ioResult                 ds.w   1        ; offset: $10 (16)
  3540. saveA5                     ds.l   1        ; offset: $12 (18)
  3541. reqCode                     ds.w   1        ; offset: $16 (22)
  3542. reserved                 ds.l   2        ; offset: $18 (24)
  3543. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3544. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3545. callID                     ds.l   1        ; offset: $26 (38)
  3546. identity                 ds.l   1        ; offset: $2A (42)
  3547. gReserved1                 ds.l   1        ; offset: $2E (46)
  3548. gReserved2                 ds.l   1        ; offset: $32 (50)
  3549. gReserved3                 ds.l   1        ; offset: $36 (54)
  3550. clientData                 ds.l   1        ; offset: $3A (58)
  3551. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ; <--  CreationID for the CSAM record 
  3552. dsamName                 ds.l   1        ; offset: $46 (70)        ;  --> CSAM name 
  3553. dsamKind                 ds.l   1        ; offset: $4A (74)        ;  --> CSAM kind 
  3554. fsSpec                     ds.l   1        ; offset: $4E (78)        ;  --> FSSpec for the file containing CSAM 
  3555. sizeof                     EQU *            ; size:   $52 (82)
  3556.                         ENDR
  3557.  
  3558. ; typedef struct DirAddDSAMPB  DirAddDSAMPB
  3559. ;
  3560. ;DirInstantiateDSAM: This call should be used by the CSAM driver in response
  3561. ;Driver Open call to indicate the toolbox about the availability of the CSAM.
  3562. ;    dsamName -> is generic CSAM name e.g. Untitled X.500 directory
  3563. ;    dsamKind -> could be generic CSAM kind e.g. 'X500'.
  3564. ;    dsamData -> pointer to private DSAMData. This will be paased back to the CSAM
  3565. ;    when the CSAM functions (DSAMDirProc,DSAMDirParseProc, DSAMAuthProc) are called.
  3566. ;    CSAM should already be setup using DirAddDSAM call.
  3567. ;    DSAMDirProc -> This procedure will be called when  any catalog service
  3568. ;    call intended for the CSAM (other then parse calls)
  3569. ;    DSAMDirParseProc -> This procedure will be called when any of the parse calls
  3570. ;    are called.
  3571. ;    DSAMAuthProc -> This procedure will be called when any of the Authentication Calls
  3572. ;    are made to the CSAM. If the CSAM does not support authentication, this can be nil.
  3573. ;This call can be done only in synchronous mode.
  3574. ;
  3575. ; typedef DSAMDirUPP         DSAMDirProc
  3576. ; typedef DSAMDirParseUPP     DSAMDirParseProc
  3577. ; typedef DSAMAuthUPP         DSAMAuthProc
  3578. DirInstantiateDSAMPB     RECORD    0
  3579. qLink                     ds.l   1        ; offset: $0 (0)
  3580. reserved1                 ds.l   1        ; offset: $4 (4)
  3581. reserved2                 ds.l   1        ; offset: $8 (8)
  3582. ioCompletion             ds.l   1        ; offset: $C (12)
  3583. ioResult                 ds.w   1        ; offset: $10 (16)
  3584. saveA5                     ds.l   1        ; offset: $12 (18)
  3585. reqCode                     ds.w   1        ; offset: $16 (22)
  3586. reserved                 ds.l   2        ; offset: $18 (24)
  3587. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3588. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3589. callID                     ds.l   1        ; offset: $26 (38)
  3590. identity                 ds.l   1        ; offset: $2A (42)
  3591. gReserved1                 ds.l   1        ; offset: $2E (46)
  3592. gReserved2                 ds.l   1        ; offset: $32 (50)
  3593. gReserved3                 ds.l   1        ; offset: $36 (54)
  3594. clientData                 ds.l   1        ; offset: $3A (58)
  3595. dsamName                 ds.l   1        ; offset: $3E (62)        ;  --> dsamName name 
  3596. dsamKind                 ds.l   1        ; offset: $42 (66)        ;  --> DSAMKind 
  3597. dsamData                 ds.l   1        ; offset: $46 (70)        ;  --> dsamData  
  3598. dsamDirProc                 ds.l   1        ; offset: $4A (74)        ;  --> of type DSAMDirProc: for catalog service calls 
  3599. dsamDirParseProc         ds.l   1        ; offset: $4E (78)        ;  --> of type DSAMDirParseProc: for catalog service parse calls 
  3600. dsamAuthProc             ds.l   1        ; offset: $52 (82)        ;  --> of type DSAMAuthProc: for authetication service calls 
  3601. sizeof                     EQU *            ; size:   $56 (86)
  3602.                         ENDR
  3603.  
  3604. ; typedef struct DirInstantiateDSAMPB  DirInstantiateDSAMPB
  3605. ;
  3606. ;DirRemoveDSAM: This call can be used to remove  a CSAM file from the OCE Setup.
  3607. ;    dsamRecordCID -> is the creationID of the CSAM record.
  3608. ;This call can be made only in synchronous mode.
  3609. ;
  3610. DirRemoveDSAMPB         RECORD    0
  3611. qLink                     ds.l   1        ; offset: $0 (0)
  3612. reserved1                 ds.l   1        ; offset: $4 (4)
  3613. reserved2                 ds.l   1        ; offset: $8 (8)
  3614. ioCompletion             ds.l   1        ; offset: $C (12)
  3615. ioResult                 ds.w   1        ; offset: $10 (16)
  3616. saveA5                     ds.l   1        ; offset: $12 (18)
  3617. reqCode                     ds.w   1        ; offset: $16 (22)
  3618. reserved                 ds.l   2        ; offset: $18 (24)
  3619. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3620. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3621. callID                     ds.l   1        ; offset: $26 (38)
  3622. identity                 ds.l   1        ; offset: $2A (42)
  3623. gReserved1                 ds.l   1        ; offset: $2E (46)
  3624. gReserved2                 ds.l   1        ; offset: $32 (50)
  3625. gReserved3                 ds.l   1        ; offset: $36 (54)
  3626. clientData                 ds.l   1        ; offset: $3A (58)
  3627. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ; <--  CreationID for the CSAM record 
  3628. sizeof                     EQU *            ; size:   $46 (70)
  3629.                         ENDR
  3630.  
  3631. ; typedef struct DirRemoveDSAMPB  DirRemoveDSAMPB
  3632. ;
  3633. ;DirAddDSAMDirectory: This call can be used to inorm the availability of a CSAM catalog.
  3634. ;    dsamRecordCID ->  recordID for the CSAM serving this catalog
  3635. ;    directoryName ->  name of the catalog
  3636. ;    discriminator -> discriminator for the catalog
  3637. ;    directoryRecordCID -> If the call is successful, creationID for the record will
  3638. ;                            be returned.
  3639. ;
  3640. DirAddDSAMDirectoryPB     RECORD    0
  3641. qLink                     ds.l   1        ; offset: $0 (0)
  3642. reserved1                 ds.l   1        ; offset: $4 (4)
  3643. reserved2                 ds.l   1        ; offset: $8 (8)
  3644. ioCompletion             ds.l   1        ; offset: $C (12)
  3645. ioResult                 ds.w   1        ; offset: $10 (16)
  3646. saveA5                     ds.l   1        ; offset: $12 (18)
  3647. reqCode                     ds.w   1        ; offset: $16 (22)
  3648. reserved                 ds.l   2        ; offset: $18 (24)
  3649. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3650. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3651. callID                     ds.l   1        ; offset: $26 (38)
  3652. identity                 ds.l   1        ; offset: $2A (42)
  3653. gReserved1                 ds.l   1        ; offset: $2E (46)
  3654. gReserved2                 ds.l   1        ; offset: $32 (50)
  3655. gReserved3                 ds.l   1        ; offset: $36 (54)
  3656. clientData                 ds.l   1        ; offset: $3A (58)
  3657. dsamRecordCID             ds.l   2        ; offset: $3E (62)        ;  --> CreationID for the CSAM record 
  3658. directoryName             ds.l   1        ; offset: $46 (70)        ;  --> catalog name 
  3659. discriminator             ds.l   2        ; offset: $4A (74)        ;  --> catalog discriminator 
  3660. features                 ds.l   1        ; offset: $52 (82)        ;  --> capabilty flags for the catalog 
  3661. directoryRecordCID         ds.l   2        ; offset: $56 (86)        ; <--  creationID for the catalog record 
  3662. sizeof                     EQU *            ; size:   $5E (94)
  3663.                         ENDR
  3664.  
  3665. ; typedef struct DirAddDSAMDirectoryPB  DirAddDSAMDirectoryPB
  3666. ;
  3667. ;DirRemoveDirectory: This call can be used to inform the toolbox that
  3668. ;catalog specified by 'directoryRecordCID'
  3669. ;
  3670. DirRemoveDirectoryPB     RECORD    0
  3671. qLink                     ds.l   1        ; offset: $0 (0)
  3672. reserved1                 ds.l   1        ; offset: $4 (4)
  3673. reserved2                 ds.l   1        ; offset: $8 (8)
  3674. ioCompletion             ds.l   1        ; offset: $C (12)
  3675. ioResult                 ds.w   1        ; offset: $10 (16)
  3676. saveA5                     ds.l   1        ; offset: $12 (18)
  3677. reqCode                     ds.w   1        ; offset: $16 (22)
  3678. reserved                 ds.l   2        ; offset: $18 (24)
  3679. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3680. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3681. callID                     ds.l   1        ; offset: $26 (38)
  3682. identity                 ds.l   1        ; offset: $2A (42)
  3683. gReserved1                 ds.l   1        ; offset: $2E (46)
  3684. gReserved2                 ds.l   1        ; offset: $32 (50)
  3685. gReserved3                 ds.l   1        ; offset: $36 (54)
  3686. clientData                 ds.l   1        ; offset: $3A (58)
  3687. directoryRecordCID         ds.l   2        ; offset: $3E (62)        ;  --> creationID for the catalog record 
  3688. sizeof                     EQU *            ; size:   $46 (70)
  3689.                         ENDR
  3690.  
  3691. ; typedef struct DirRemoveDirectoryPB  DirRemoveDirectoryPB
  3692. ;
  3693. ; * DSGetExtendedDirectoriesInfo::  This call can be used to get
  3694. ; * the information of various foreign catalogs supported.
  3695. ; * Typically a DE Template  may make this call to create a
  3696. ; * Address template or a Gateway may make this call to findout
  3697. ; * catalog name space in which MSAM may would support. 
  3698. ; * Client will supply a buffer pointed by 'bufferPtr' of size 'bufferLength'. 
  3699. ; * When the call completes with 'daMoreData' error, client can examine 'totalEntries'
  3700. ; * returned and reissue the call with increaing buffer.
  3701. ; * Toolbox will findout the private information of each of the Foreign Catalogs
  3702. ; * by polling CSAM's, Gateways, and MnMServers. The Information returned
  3703. ; * for each catalog will be packed in the format: 
  3704. ; * typedef struct EachDirectoryData {
  3705. ; *  PackedRLI                        pRLI;           //  packed RLI for the catalog
  3706. ; *  OSType                            entnType;        //  Entn Type
  3707. ; *  long                            hasMailSlot;   //  If this catalog has mail slot this will be 1 otherwise zero
  3708. ; *    ProtoRString                    RealName;      //  Packed RString for Real Name (padded to even boundary) 
  3709. ; *    ProtoRString                    comment;       //  Packed RString holding any comment for Display (padded to even boundary)
  3710. ; *    long                            length;        //  data length
  3711. ; *    char                            data[length];  //  data padded to even boundary
  3712. ; * };
  3713. ; *
  3714. ; *
  3715. ; *
  3716. ; * typedef struct myData {
  3717. ; *      EachDirectoryData    data[numberOfEntries];    // data packed in the above format
  3718. ; *    };
  3719. ; *
  3720. DirGetExtendedDirectoriesInfoPB RECORD    0
  3721. qLink                     ds.l   1        ; offset: $0 (0)
  3722. reserved1                 ds.l   1        ; offset: $4 (4)
  3723. reserved2                 ds.l   1        ; offset: $8 (8)
  3724. ioCompletion             ds.l   1        ; offset: $C (12)
  3725. ioResult                 ds.w   1        ; offset: $10 (16)
  3726. saveA5                     ds.l   1        ; offset: $12 (18)
  3727. reqCode                     ds.w   1        ; offset: $16 (22)
  3728. reserved                 ds.l   2        ; offset: $18 (24)
  3729. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3730. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3731. callID                     ds.l   1        ; offset: $26 (38)
  3732. identity                 ds.l   1        ; offset: $2A (42)
  3733. gReserved1                 ds.l   1        ; offset: $2E (46)
  3734. gReserved2                 ds.l   1        ; offset: $32 (50)
  3735. gReserved3                 ds.l   1        ; offset: $36 (54)
  3736. clientData                 ds.l   1        ; offset: $3A (58)
  3737. buffer                     ds.l   1        ; offset: $3E (62)        ;  --> Pointer to a buufer where data will be returned 
  3738. bufferSize                 ds.l   1        ; offset: $42 (66)        ;  --> Length of the buffer, Length of actual data will be returned here 
  3739. totalEntries             ds.l   1        ; offset: $46 (70)        ; <--  Total Number of Catalogs found 
  3740. actualEntries             ds.l   1        ; offset: $4A (74)        ; <--  Total Number of Catalogs entries returned 
  3741. sizeof                     EQU *            ; size:   $4E (78)
  3742.                         ENDR
  3743.  
  3744. ; typedef struct DirGetExtendedDirectoriesInfoPB  DirGetExtendedDirectoriesInfoPB
  3745. ;
  3746. ;DirGetDirectoryIconPB: With this call a client can find out about
  3747. ;the icons supported by the Catalog.
  3748. ;Both ADAP and Personal Catalog will not support this call for now.
  3749. ;A CSAM can support a call so that DE Extension can use this
  3750. ;call to find appropriate Icons.
  3751. ;
  3752. ;Returns kOCEBufferTooSmall if icon is too small, but will update iconSize.
  3753. ;
  3754. DirGetDirectoryIconPB     RECORD    0
  3755. qLink                     ds.l   1        ; offset: $0 (0)
  3756. reserved1                 ds.l   1        ; offset: $4 (4)
  3757. reserved2                 ds.l   1        ; offset: $8 (8)
  3758. ioCompletion             ds.l   1        ; offset: $C (12)
  3759. ioResult                 ds.w   1        ; offset: $10 (16)
  3760. saveA5                     ds.l   1        ; offset: $12 (18)
  3761. reqCode                     ds.w   1        ; offset: $16 (22)
  3762. reserved                 ds.l   2        ; offset: $18 (24)
  3763. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3764. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3765. callID                     ds.l   1        ; offset: $26 (38)
  3766. identity                 ds.l   1        ; offset: $2A (42)
  3767. gReserved1                 ds.l   1        ; offset: $2E (46)
  3768. gReserved2                 ds.l   1        ; offset: $32 (50)
  3769. gReserved3                 ds.l   1        ; offset: $36 (54)
  3770. clientData                 ds.l   1        ; offset: $3A (58)
  3771. pRLI                     ds.l   1        ; offset: $3E (62)        ;  --> packed RLI for the catalog 
  3772. iconType                 ds.l   1        ; offset: $42 (66)        ;  --> Type of Icon requested 
  3773. iconBuffer                 ds.l   1        ; offset: $46 (70)        ;  --> Buffer to hold Icon Data 
  3774. bufferSize                 ds.l   1        ; offset: $4A (74)        ;  <-> size of buffer to hold icon data 
  3775. sizeof                     EQU *            ; size:   $4E (78)
  3776.                         ENDR
  3777.  
  3778. ; typedef struct DirGetDirectoryIconPB  DirGetDirectoryIconPB
  3779. ;
  3780. ;DirGetOCESetupRefNum: This call will return 'dsRefnum' for the OCE Setup Personal Catalog
  3781. ;and oceSetupRecordCID for the oceSetup Record.
  3782. ;Clients interested in manipulating OCE Setup Personal Catalog directly should
  3783. ;make this call to get 'dsRefNum'.
  3784. ;'dsRefNum' will be returned in the standard field in the DirParamHeader.
  3785. ;
  3786. DirGetOCESetupRefNumPB     RECORD    0
  3787. qLink                     ds.l   1        ; offset: $0 (0)
  3788. reserved1                 ds.l   1        ; offset: $4 (4)
  3789. reserved2                 ds.l   1        ; offset: $8 (8)
  3790. ioCompletion             ds.l   1        ; offset: $C (12)
  3791. ioResult                 ds.w   1        ; offset: $10 (16)
  3792. saveA5                     ds.l   1        ; offset: $12 (18)
  3793. reqCode                     ds.w   1        ; offset: $16 (22)
  3794. reserved                 ds.l   2        ; offset: $18 (24)
  3795. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3796. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3797. callID                     ds.l   1        ; offset: $26 (38)
  3798. identity                 ds.l   1        ; offset: $2A (42)
  3799. gReserved1                 ds.l   1        ; offset: $2E (46)
  3800. gReserved2                 ds.l   1        ; offset: $32 (50)
  3801. gReserved3                 ds.l   1        ; offset: $36 (54)
  3802. clientData                 ds.l   1        ; offset: $3A (58)
  3803. oceSetupRecordCID         ds.l   2        ; offset: $3E (62)        ; --> creationID for the catalog record 
  3804. sizeof                     EQU *            ; size:   $46 (70)
  3805.                         ENDR
  3806.  
  3807. ; typedef struct DirGetOCESetupRefNumPB  DirGetOCESetupRefNumPB
  3808. ;***************************************************************************
  3809. ; Catalog and Authentication control blocks and operation definitions 
  3810. AuthParamBlock             RECORD    0
  3811. qLink                     ds.l   1        ; offset: $0 (0)
  3812. reserved1                 ds.l   1        ; offset: $4 (4)
  3813. reserved2                 ds.l   1        ; offset: $8 (8)
  3814. ioCompletion             ds.l   1        ; offset: $C (12)
  3815. ioResult                 ds.w   1        ; offset: $10 (16)
  3816. saveA5                     ds.l   1        ; offset: $12 (18)
  3817. reqCode                     ds.w   1        ; offset: $16 (22)
  3818. reserved                 ds.l   2        ; offset: $18 (24)
  3819. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3820. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3821. callID                     ds.l   1        ; offset: $26 (38)
  3822. identity                 ds.l   1        ; offset: $2A (42)
  3823. gReserved1                 ds.l   1        ; offset: $2E (46)
  3824. gReserved2                 ds.l   1        ; offset: $32 (50)
  3825. gReserved3                 ds.l   1        ; offset: $36 (54)
  3826. clientData                 ds.l   1        ; offset: $3A (58)
  3827.                          ORG 0
  3828. bindIdentityPB             ds     AuthBindSpecificIdentityPB ; offset: $0 (0)
  3829.                          ORG 0
  3830. unbindIdentityPB         ds     AuthUnbindSpecificIdentityPB ; offset: $0 (0)
  3831.                          ORG 0
  3832. resolveCreationIDPB         ds     AuthResolveCreationIDPB ; offset: $0 (0)
  3833.                          ORG 0
  3834. getIdentityInfoPB         ds     AuthGetSpecificIdentityInfoPB ; offset: $0 (0)
  3835.                          ORG 0
  3836. addKeyPB                 ds     AuthAddKeyPB ; offset: $0 (0)
  3837.                          ORG 0
  3838. changeKeyPB                 ds     AuthChangeKeyPB ; offset: $0 (0)
  3839.                          ORG 0
  3840. deleteKeyPB                 ds     AuthDeleteKeyPB ; offset: $0 (0)
  3841.                          ORG 0
  3842. passwordToKeyPB             ds     AuthPasswordToKeyPB ; offset: $0 (0)
  3843.                          ORG 0
  3844. getCredentialsPB         ds     AuthGetCredentialsPB ; offset: $0 (0)
  3845.                          ORG 0
  3846. decryptCredentialsPB     ds     AuthDecryptCredentialsPB ; offset: $0 (0)
  3847.                          ORG 0
  3848. makeChallengePB             ds     AuthMakeChallengePB ; offset: $0 (0)
  3849.                          ORG 0
  3850. makeReplyPB                 ds     AuthMakeReplyPB ; offset: $0 (0)
  3851.                          ORG 0
  3852. verifyReplyPB             ds     AuthVerifyReplyPB ; offset: $0 (0)
  3853.                          ORG 0
  3854. getUTCTimePB             ds     AuthGetUTCTimePB ; offset: $0 (0)
  3855.                          ORG 0
  3856. makeProxyPB                 ds     AuthMakeProxyPB ; offset: $0 (0)
  3857.                          ORG 0
  3858. tradeProxyForCredentialsPB ds     AuthTradeProxyForCredentialsPB ; offset: $0 (0)
  3859.                          ORG 0
  3860. getLocalIdentityPB         ds     AuthGetLocalIdentityPB ; offset: $0 (0)
  3861.                          ORG 0
  3862. unLockLocalIdentityPB     ds     AuthUnlockLocalIdentityPB ; offset: $0 (0)
  3863.                          ORG 0
  3864. lockLocalIdentityPB         ds     AuthLockLocalIdentityPB ; offset: $0 (0)
  3865.                          ORG 0
  3866. localIdentityQInstallPB     ds     AuthAddToLocalIdentityQueuePB ; offset: $0 (0)
  3867.                          ORG 0
  3868. localIdentityQRemovePB     ds     AuthRemoveFromLocalIdentityQueuePB ; offset: $0 (0)
  3869.                          ORG 0
  3870. setupLocalIdentityPB     ds     AuthSetupLocalIdentityPB ; offset: $0 (0)
  3871.                          ORG 0
  3872. changeLocalIdentityPB     ds     AuthChangeLocalIdentityPB ; offset: $0 (0)
  3873.                          ORG 0
  3874. removeLocalIdentityPB     ds     AuthRemoveLocalIdentityPB ; offset: $0 (0)
  3875.                          ORG 0
  3876. setupDirectoryIdentityPB ds     OCESetupAddDirectoryInfoPB ; offset: $0 (0)
  3877.                          ORG 0
  3878. changeDirectoryIdentityPB ds     OCESetupChangeDirectoryInfoPB ; offset: $0 (0)
  3879.                          ORG 0
  3880. removeDirectoryIdentityPB ds     OCESetupRemoveDirectoryInfoPB ; offset: $0 (0)
  3881.                          ORG 0
  3882. getDirectoryIdentityInfoPB ds     OCESetupGetDirectoryInfoPB ; offset: $0 (0)
  3883.                          ORG 98
  3884. sizeof                     EQU *            ; size:   $62 (98)
  3885.                         ENDR
  3886.  
  3887. DirParamBlock             RECORD    0
  3888. qLink                     ds.l   1        ; offset: $0 (0)
  3889. reserved1                 ds.l   1        ; offset: $4 (4)
  3890. reserved2                 ds.l   1        ; offset: $8 (8)
  3891. ioCompletion             ds.l   1        ; offset: $C (12)
  3892. ioResult                 ds.w   1        ; offset: $10 (16)
  3893. saveA5                     ds.l   1        ; offset: $12 (18)
  3894. reqCode                     ds.w   1        ; offset: $16 (22)
  3895. reserved                 ds.l   2        ; offset: $18 (24)
  3896. serverHint                 ds     AddrBlock ; offset: $20 (32)
  3897. dsRefNum                 ds.w   1        ; offset: $24 (36)
  3898. callID                     ds.l   1        ; offset: $26 (38)
  3899. identity                 ds.l   1        ; offset: $2A (42)
  3900. gReserved1                 ds.l   1        ; offset: $2E (46)
  3901. gReserved2                 ds.l   1        ; offset: $32 (50)
  3902. gReserved3                 ds.l   1        ; offset: $36 (54)
  3903. clientData                 ds.l   1        ; offset: $3A (58)
  3904.                          ORG 0
  3905. addRecordPB                 ds     DirAddRecordPB ; offset: $0 (0)
  3906.                          ORG 0
  3907. deleteRecordPB             ds     DirDeleteRecordPB ; offset: $0 (0)
  3908.                          ORG 0
  3909. enumerateGetPB             ds     DirEnumerateGetPB ; offset: $0 (0)
  3910.                          ORG 0
  3911. enumerateParsePB         ds     DirEnumerateParsePB ; offset: $0 (0)
  3912.                          ORG 0
  3913. findRecordGetPB             ds     DirFindRecordGetPB ; offset: $0 (0)
  3914.                          ORG 0
  3915. findRecordParsePB         ds     DirFindRecordParsePB ; offset: $0 (0)
  3916.                          ORG 0
  3917. lookupGetPB                 ds     DirLookupGetPB ; offset: $0 (0)
  3918.                          ORG 0
  3919. lookupParsePB             ds     DirLookupParsePB ; offset: $0 (0)
  3920.                          ORG 0
  3921. addAttributeValuePB         ds     DirAddAttributeValuePB ; offset: $0 (0)
  3922.                          ORG 0
  3923. deleteAttributeTypePB     ds     DirDeleteAttributeTypePB ; offset: $0 (0)
  3924.                          ORG 0
  3925. deleteAttributeValuePB     ds     DirDeleteAttributeValuePB ; offset: $0 (0)
  3926.                          ORG 0
  3927. changeAttributeValuePB     ds     DirChangeAttributeValuePB ; offset: $0 (0)
  3928.                          ORG 0
  3929. verifyAttributeValuePB     ds     DirVerifyAttributeValuePB ; offset: $0 (0)
  3930.                          ORG 0
  3931. findValuePB                 ds     DirFindValuePB ; offset: $0 (0)
  3932.                          ORG 0
  3933. enumeratePseudonymGetPB     ds     DirEnumeratePseudonymGetPB ; offset: $0 (0)
  3934.                          ORG 0
  3935. enumeratePseudonymParsePB ds     DirEnumeratePseudonymParsePB ; offset: $0 (0)
  3936.                          ORG 0
  3937. addPseudonymPB             ds     DirAddPseudonymPB ; offset: $0 (0)
  3938.                          ORG 0
  3939. deletePseudonymPB         ds     DirDeletePseudonymPB ; offset: $0 (0)
  3940.                          ORG 0
  3941. addAliasPB                 ds     DirAddAliasPB ; offset: $0 (0)
  3942.                          ORG 0
  3943. enumerateAttributeTypesGetPB ds     DirEnumerateAttributeTypesGetPB ; offset: $0 (0)
  3944.                          ORG 0
  3945. enumerateAttributeTypesParsePB ds     DirEnumerateAttributeTypesParsePB ; offset: $0 (0)
  3946.                          ORG 0
  3947. getNameAndTypePB         ds     DirGetNameAndTypePB ; offset: $0 (0)
  3948.                          ORG 0
  3949. setNameAndTypePB         ds     DirSetNameAndTypePB ; offset: $0 (0)
  3950.                          ORG 0
  3951. getRecordMetaInfoPB         ds     DirGetRecordMetaInfoPB ; offset: $0 (0)
  3952.                          ORG 0
  3953. getDNodeMetaInfoPB         ds     DirGetDNodeMetaInfoPB ; offset: $0 (0)
  3954.                          ORG 0
  3955. getDirectoryInfoPB         ds     DirGetDirectoryInfoPB ; offset: $0 (0)
  3956.                          ORG 0
  3957. getDNodeAccessControlGetPB ds     DirGetDNodeAccessControlGetPB ; offset: $0 (0)
  3958.                          ORG 0
  3959. getDNodeAccessControlParsePB ds     DirGetDNodeAccessControlParsePB ; offset: $0 (0)
  3960.                          ORG 0
  3961. getRecordAccessControlGetPB ds     DirGetRecordAccessControlGetPB ; offset: $0 (0)
  3962.                          ORG 0
  3963. getRecordAccessControlParsePB ds     DirGetRecordAccessControlParsePB ; offset: $0 (0)
  3964.                          ORG 0
  3965. getAttributeAccessControlGetPB ds     DirGetAttributeAccessControlGetPB ; offset: $0 (0)
  3966.                          ORG 0
  3967. getAttributeAccessControlParsePB ds     DirGetAttributeAccessControlParsePB ; offset: $0 (0)
  3968.                          ORG 0
  3969. enumerateDirectoriesGetPB ds     DirEnumerateDirectoriesGetPB ; offset: $0 (0)
  3970.                          ORG 0
  3971. enumerateDirectoriesParsePB ds     DirEnumerateDirectoriesParsePB ; offset: $0 (0)
  3972.                          ORG 0
  3973. addADAPDirectoryPB         ds     DirAddADAPDirectoryPB ; offset: $0 (0)
  3974.                          ORG 0
  3975. removeDirectoryPB         ds     DirRemoveDirectoryPB ; offset: $0 (0)
  3976.                          ORG 0
  3977. netSearchADAPDirectoriesGetPB ds     DirNetSearchADAPDirectoriesGetPB ; offset: $0 (0)
  3978.                          ORG 0
  3979. netSearchADAPDirectoriesParsePB ds     DirNetSearchADAPDirectoriesParsePB ; offset: $0 (0)
  3980.                          ORG 0
  3981. findADAPDirectoryByNetSearchPB ds     DirFindADAPDirectoryByNetSearchPB ; offset: $0 (0)
  3982.                          ORG 0
  3983. mapDNodeNumberToPathNamePB ds     DirMapDNodeNumberToPathNamePB ; offset: $0 (0)
  3984.                          ORG 0
  3985. mapPathNameToDNodeNumberPB ds     DirMapPathNameToDNodeNumberPB ; offset: $0 (0)
  3986.                          ORG 0
  3987. getLocalNetworkSpecPB     ds     DirGetLocalNetworkSpecPB ; offset: $0 (0)
  3988.                          ORG 0
  3989. getDNodeInfoPB             ds     DirGetDNodeInfoPB ; offset: $0 (0)
  3990.                          ORG 0
  3991. createPersonalDirectoryPB ds     DirCreatePersonalDirectoryPB ; offset: $0 (0)
  3992.                          ORG 0
  3993. openPersonalDirectoryPB     ds     DirOpenPersonalDirectoryPB ; offset: $0 (0)
  3994.                          ORG 0
  3995. closePersonalDirectoryPB ds     DirClosePersonalDirectoryPB ; offset: $0 (0)
  3996.                          ORG 0
  3997. makePersonalDirectoryRLIPB ds     DirMakePersonalDirectoryRLIPB ; offset: $0 (0)
  3998.                          ORG 0
  3999. addDSAMPB                 ds     DirAddDSAMPB ; offset: $0 (0)
  4000.                          ORG 0
  4001. instantiateDSAMPB         ds     DirInstantiateDSAMPB ; offset: $0 (0)
  4002.                          ORG 0
  4003. removeDSAMPB             ds     DirRemoveDSAMPB ; offset: $0 (0)
  4004.                          ORG 0
  4005. addDSAMDirectoryPB         ds     DirAddDSAMDirectoryPB ; offset: $0 (0)
  4006.                          ORG 0
  4007. getExtendedDirectoriesInfoPB ds     DirGetExtendedDirectoriesInfoPB ; offset: $0 (0)
  4008.                          ORG 0
  4009. getDirectoryIconPB         ds     DirGetDirectoryIconPB ; offset: $0 (0)
  4010.                          ORG 0
  4011. dirGetOCESetupRefNumPB     ds     DirGetOCESetupRefNumPB ; offset: $0 (0)
  4012.                          ORG 0
  4013. abortPB                     ds     DirAbortPB ; offset: $0 (0)
  4014.                          ORG 174
  4015. sizeof                     EQU *            ; size:   $AE (174)
  4016.                         ENDR
  4017.  
  4018. ;
  4019. ; pascal OSErr AuthBindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4020. ;
  4021.     IF ¬ GENERATINGCFM THEN
  4022.         Macro
  4023.         _AuthBindSpecificIdentity
  4024.             move.w    #$200,-(sp)
  4025.             dc.w     $AA5E
  4026.         EndM
  4027.     ELSE
  4028.         IMPORT_CFM_FUNCTION    AuthBindSpecificIdentity
  4029.     ENDIF
  4030.  
  4031. ;
  4032. ; pascal OSErr AuthUnbindSpecificIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4033. ;
  4034.     IF ¬ GENERATINGCFM THEN
  4035.         Macro
  4036.         _AuthUnbindSpecificIdentity
  4037.             move.w    #$201,-(sp)
  4038.             dc.w     $AA5E
  4039.         EndM
  4040.     ELSE
  4041.         IMPORT_CFM_FUNCTION    AuthUnbindSpecificIdentity
  4042.     ENDIF
  4043.  
  4044. ;
  4045. ; pascal OSErr AuthResolveCreationID(AuthParamBlockPtr paramBlock, Boolean async)
  4046. ;
  4047.     IF ¬ GENERATINGCFM THEN
  4048.         Macro
  4049.         _AuthResolveCreationID
  4050.             move.w    #$202,-(sp)
  4051.             dc.w     $AA5E
  4052.         EndM
  4053.     ELSE
  4054.         IMPORT_CFM_FUNCTION    AuthResolveCreationID
  4055.     ENDIF
  4056.  
  4057. ;
  4058. ; pascal OSErr AuthGetSpecificIdentityInfo(AuthParamBlockPtr paramBlock, Boolean async)
  4059. ;
  4060.     IF ¬ GENERATINGCFM THEN
  4061.         Macro
  4062.         _AuthGetSpecificIdentityInfo
  4063.             move.w    #$203,-(sp)
  4064.             dc.w     $AA5E
  4065.         EndM
  4066.     ELSE
  4067.         IMPORT_CFM_FUNCTION    AuthGetSpecificIdentityInfo
  4068.     ENDIF
  4069.  
  4070. ;
  4071. ; pascal OSErr AuthAddKey(AuthParamBlockPtr paramBlock, Boolean async)
  4072. ;
  4073.     IF ¬ GENERATINGCFM THEN
  4074.         Macro
  4075.         _AuthAddKey
  4076.             move.w    #$207,-(sp)
  4077.             dc.w     $AA5E
  4078.         EndM
  4079.     ELSE
  4080.         IMPORT_CFM_FUNCTION    AuthAddKey
  4081.     ENDIF
  4082.  
  4083. ;
  4084. ; pascal OSErr AuthChangeKey(AuthParamBlockPtr paramBlock, Boolean async)
  4085. ;
  4086.     IF ¬ GENERATINGCFM THEN
  4087.         Macro
  4088.         _AuthChangeKey
  4089.             move.w    #$208,-(sp)
  4090.             dc.w     $AA5E
  4091.         EndM
  4092.     ELSE
  4093.         IMPORT_CFM_FUNCTION    AuthChangeKey
  4094.     ENDIF
  4095.  
  4096. ;
  4097. ; pascal OSErr AuthDeleteKey(AuthParamBlockPtr paramBlock, Boolean async)
  4098. ;
  4099.     IF ¬ GENERATINGCFM THEN
  4100.         Macro
  4101.         _AuthDeleteKey
  4102.             move.w    #$209,-(sp)
  4103.             dc.w     $AA5E
  4104.         EndM
  4105.     ELSE
  4106.         IMPORT_CFM_FUNCTION    AuthDeleteKey
  4107.     ENDIF
  4108.  
  4109. ;
  4110. ; pascal OSErr AuthPasswordToKey(AuthParamBlockPtr paramBlock, Boolean async)
  4111. ;
  4112.     IF ¬ GENERATINGCFM THEN
  4113.         Macro
  4114.         _AuthPasswordToKey
  4115.             move.w    #$20A,-(sp)
  4116.             dc.w     $AA5E
  4117.         EndM
  4118.     ELSE
  4119.         IMPORT_CFM_FUNCTION    AuthPasswordToKey
  4120.     ENDIF
  4121.  
  4122. ;
  4123. ; pascal OSErr AuthGetCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4124. ;
  4125.     IF ¬ GENERATINGCFM THEN
  4126.         Macro
  4127.         _AuthGetCredentials
  4128.             move.w    #$20B,-(sp)
  4129.             dc.w     $AA5E
  4130.         EndM
  4131.     ELSE
  4132.         IMPORT_CFM_FUNCTION    AuthGetCredentials
  4133.     ENDIF
  4134.  
  4135. ;
  4136. ; pascal OSErr AuthDecryptCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4137. ;
  4138.     IF ¬ GENERATINGCFM THEN
  4139.         Macro
  4140.         _AuthDecryptCredentials
  4141.             move.w    #$20C,-(sp)
  4142.             dc.w     $AA5E
  4143.         EndM
  4144.     ELSE
  4145.         IMPORT_CFM_FUNCTION    AuthDecryptCredentials
  4146.     ENDIF
  4147.  
  4148. ;
  4149. ; pascal OSErr AuthMakeChallenge(AuthParamBlockPtr paramBlock, Boolean async)
  4150. ;
  4151.     IF ¬ GENERATINGCFM THEN
  4152.         Macro
  4153.         _AuthMakeChallenge
  4154.             move.w    #$20F,-(sp)
  4155.             dc.w     $AA5E
  4156.         EndM
  4157.     ELSE
  4158.         IMPORT_CFM_FUNCTION    AuthMakeChallenge
  4159.     ENDIF
  4160.  
  4161. ;
  4162. ; pascal OSErr AuthMakeReply(AuthParamBlockPtr paramBlock, Boolean async)
  4163. ;
  4164.     IF ¬ GENERATINGCFM THEN
  4165.         Macro
  4166.         _AuthMakeReply
  4167.             move.w    #$210,-(sp)
  4168.             dc.w     $AA5E
  4169.         EndM
  4170.     ELSE
  4171.         IMPORT_CFM_FUNCTION    AuthMakeReply
  4172.     ENDIF
  4173.  
  4174. ;
  4175. ; pascal OSErr AuthVerifyReply(AuthParamBlockPtr paramBlock, Boolean async)
  4176. ;
  4177.     IF ¬ GENERATINGCFM THEN
  4178.         Macro
  4179.         _AuthVerifyReply
  4180.             move.w    #$211,-(sp)
  4181.             dc.w     $AA5E
  4182.         EndM
  4183.     ELSE
  4184.         IMPORT_CFM_FUNCTION    AuthVerifyReply
  4185.     ENDIF
  4186.  
  4187. ;
  4188. ; pascal OSErr AuthGetUTCTime(AuthParamBlockPtr paramBlock, Boolean async)
  4189. ;
  4190.     IF ¬ GENERATINGCFM THEN
  4191.         Macro
  4192.         _AuthGetUTCTime
  4193.             move.w    #$21A,-(sp)
  4194.             dc.w     $AA5E
  4195.         EndM
  4196.     ELSE
  4197.         IMPORT_CFM_FUNCTION    AuthGetUTCTime
  4198.     ENDIF
  4199.  
  4200. ;
  4201. ; pascal OSErr AuthMakeProxy(AuthParamBlockPtr paramBlock, Boolean async)
  4202. ;
  4203.     IF ¬ GENERATINGCFM THEN
  4204.         Macro
  4205.         _AuthMakeProxy
  4206.             move.w    #$212,-(sp)
  4207.             dc.w     $AA5E
  4208.         EndM
  4209.     ELSE
  4210.         IMPORT_CFM_FUNCTION    AuthMakeProxy
  4211.     ENDIF
  4212.  
  4213. ;
  4214. ; pascal OSErr AuthTradeProxyForCredentials(AuthParamBlockPtr paramBlock, Boolean async)
  4215. ;
  4216.     IF ¬ GENERATINGCFM THEN
  4217.         Macro
  4218.         _AuthTradeProxyForCredentials
  4219.             move.w    #$213,-(sp)
  4220.             dc.w     $AA5E
  4221.         EndM
  4222.     ELSE
  4223.         IMPORT_CFM_FUNCTION    AuthTradeProxyForCredentials
  4224.     ENDIF
  4225.  
  4226. ; Local Identity API 
  4227. ;
  4228. ; pascal OSErr AuthGetLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4229. ;
  4230.     IF ¬ GENERATINGCFM THEN
  4231.         Macro
  4232.         _AuthGetLocalIdentity
  4233.             move.w    #$204,-(sp)
  4234.             dc.w     $AA5E
  4235.         EndM
  4236.     ELSE
  4237.         IMPORT_CFM_FUNCTION    AuthGetLocalIdentity
  4238.     ENDIF
  4239.  
  4240. ;
  4241. ; pascal OSErr AuthUnlockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4242. ;
  4243.     IF ¬ GENERATINGCFM THEN
  4244.         Macro
  4245.         _AuthUnlockLocalIdentity
  4246.             move.w    #$214,-(sp)
  4247.             dc.w     $AA5E
  4248.         EndM
  4249.     ELSE
  4250.         IMPORT_CFM_FUNCTION    AuthUnlockLocalIdentity
  4251.     ENDIF
  4252.  
  4253. ;
  4254. ; pascal OSErr AuthLockLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4255. ;
  4256.     IF ¬ GENERATINGCFM THEN
  4257.         Macro
  4258.         _AuthLockLocalIdentity
  4259.             move.w    #$215,-(sp)
  4260.             dc.w     $AA5E
  4261.         EndM
  4262.     ELSE
  4263.         IMPORT_CFM_FUNCTION    AuthLockLocalIdentity
  4264.     ENDIF
  4265.  
  4266. ;
  4267. ; pascal OSErr AuthAddToLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4268. ;
  4269.     IF ¬ GENERATINGCFM THEN
  4270.         Macro
  4271.         _AuthAddToLocalIdentityQueue
  4272.             move.w    #$205,-(sp)
  4273.             dc.w     $AA5E
  4274.         EndM
  4275.     ELSE
  4276.         IMPORT_CFM_FUNCTION    AuthAddToLocalIdentityQueue
  4277.     ENDIF
  4278.  
  4279. ;
  4280. ; pascal OSErr AuthRemoveFromLocalIdentityQueue(AuthParamBlockPtr paramBlock, Boolean async)
  4281. ;
  4282.     IF ¬ GENERATINGCFM THEN
  4283.         Macro
  4284.         _AuthRemoveFromLocalIdentityQueue
  4285.             move.w    #$206,-(sp)
  4286.             dc.w     $AA5E
  4287.         EndM
  4288.     ELSE
  4289.         IMPORT_CFM_FUNCTION    AuthRemoveFromLocalIdentityQueue
  4290.     ENDIF
  4291.  
  4292. ;
  4293. ; pascal OSErr AuthSetupLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4294. ;
  4295.     IF ¬ GENERATINGCFM THEN
  4296.         Macro
  4297.         _AuthSetupLocalIdentity
  4298.             move.w    #$216,-(sp)
  4299.             dc.w     $AA5E
  4300.         EndM
  4301.     ELSE
  4302.         IMPORT_CFM_FUNCTION    AuthSetupLocalIdentity
  4303.     ENDIF
  4304.  
  4305. ;
  4306. ; pascal OSErr AuthChangeLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4307. ;
  4308.     IF ¬ GENERATINGCFM THEN
  4309.         Macro
  4310.         _AuthChangeLocalIdentity
  4311.             move.w    #$217,-(sp)
  4312.             dc.w     $AA5E
  4313.         EndM
  4314.     ELSE
  4315.         IMPORT_CFM_FUNCTION    AuthChangeLocalIdentity
  4316.     ENDIF
  4317.  
  4318. ;
  4319. ; pascal OSErr AuthRemoveLocalIdentity(AuthParamBlockPtr paramBlock, Boolean async)
  4320. ;
  4321.     IF ¬ GENERATINGCFM THEN
  4322.         Macro
  4323.         _AuthRemoveLocalIdentity
  4324.             move.w    #$218,-(sp)
  4325.             dc.w     $AA5E
  4326.         EndM
  4327.     ELSE
  4328.         IMPORT_CFM_FUNCTION    AuthRemoveLocalIdentity
  4329.     ENDIF
  4330.  
  4331. ;
  4332. ; pascal OSErr DirAddRecord(DirParamBlockPtr paramBlock, Boolean async)
  4333. ;
  4334.     IF ¬ GENERATINGCFM THEN
  4335.         Macro
  4336.         _DirAddRecord
  4337.             move.w    #$109,-(sp)
  4338.             dc.w     $AA5E
  4339.         EndM
  4340.     ELSE
  4341.         IMPORT_CFM_FUNCTION    DirAddRecord
  4342.     ENDIF
  4343.  
  4344. ;
  4345. ; pascal OSErr DirDeleteRecord(DirParamBlockPtr paramBlock, Boolean async)
  4346. ;
  4347.     IF ¬ GENERATINGCFM THEN
  4348.         Macro
  4349.         _DirDeleteRecord
  4350.             move.w    #$10A,-(sp)
  4351.             dc.w     $AA5E
  4352.         EndM
  4353.     ELSE
  4354.         IMPORT_CFM_FUNCTION    DirDeleteRecord
  4355.     ENDIF
  4356.  
  4357. ;
  4358. ; pascal OSErr DirEnumerateGet(DirParamBlockPtr paramBlock, Boolean async)
  4359. ;
  4360.     IF ¬ GENERATINGCFM THEN
  4361.         Macro
  4362.         _DirEnumerateGet
  4363.             move.w    #$111,-(sp)
  4364.             dc.w     $AA5E
  4365.         EndM
  4366.     ELSE
  4367.         IMPORT_CFM_FUNCTION    DirEnumerateGet
  4368.     ENDIF
  4369.  
  4370. ;
  4371. ; pascal OSErr DirEnumerateParse(DirParamBlockPtr paramBlock, Boolean async)
  4372. ;
  4373.     IF ¬ GENERATINGCFM THEN
  4374.         Macro
  4375.         _DirEnumerateParse
  4376.             move.w    #$101,-(sp)
  4377.             dc.w     $AA5E
  4378.         EndM
  4379.     ELSE
  4380.         IMPORT_CFM_FUNCTION    DirEnumerateParse
  4381.     ENDIF
  4382.  
  4383. ;
  4384. ; pascal OSErr DirFindRecordGet(DirParamBlockPtr paramBlock, Boolean async)
  4385. ;
  4386.     IF ¬ GENERATINGCFM THEN
  4387.         Macro
  4388.         _DirFindRecordGet
  4389.             move.w    #$140,-(sp)
  4390.             dc.w     $AA5E
  4391.         EndM
  4392.     ELSE
  4393.         IMPORT_CFM_FUNCTION    DirFindRecordGet
  4394.     ENDIF
  4395.  
  4396. ;
  4397. ; pascal OSErr DirFindRecordParse(DirParamBlockPtr paramBlock, Boolean async)
  4398. ;
  4399.     IF ¬ GENERATINGCFM THEN
  4400.         Macro
  4401.         _DirFindRecordParse
  4402.             move.w    #$141,-(sp)
  4403.             dc.w     $AA5E
  4404.         EndM
  4405.     ELSE
  4406.         IMPORT_CFM_FUNCTION    DirFindRecordParse
  4407.     ENDIF
  4408.  
  4409. ;
  4410. ; pascal OSErr DirLookupGet(DirParamBlockPtr paramBlock, Boolean async)
  4411. ;
  4412.     IF ¬ GENERATINGCFM THEN
  4413.         Macro
  4414.         _DirLookupGet
  4415.             move.w    #$117,-(sp)
  4416.             dc.w     $AA5E
  4417.         EndM
  4418.     ELSE
  4419.         IMPORT_CFM_FUNCTION    DirLookupGet
  4420.     ENDIF
  4421.  
  4422. ;
  4423. ; pascal OSErr DirLookupParse(DirParamBlockPtr paramBlock, Boolean async)
  4424. ;
  4425.     IF ¬ GENERATINGCFM THEN
  4426.         Macro
  4427.         _DirLookupParse
  4428.             move.w    #$102,-(sp)
  4429.             dc.w     $AA5E
  4430.         EndM
  4431.     ELSE
  4432.         IMPORT_CFM_FUNCTION    DirLookupParse
  4433.     ENDIF
  4434.  
  4435. ;
  4436. ; pascal OSErr DirAddAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4437. ;
  4438.     IF ¬ GENERATINGCFM THEN
  4439.         Macro
  4440.         _DirAddAttributeValue
  4441.             move.w    #$10B,-(sp)
  4442.             dc.w     $AA5E
  4443.         EndM
  4444.     ELSE
  4445.         IMPORT_CFM_FUNCTION    DirAddAttributeValue
  4446.     ENDIF
  4447.  
  4448. ;
  4449. ; pascal OSErr DirDeleteAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4450. ;
  4451.     IF ¬ GENERATINGCFM THEN
  4452.         Macro
  4453.         _DirDeleteAttributeValue
  4454.             move.w    #$10C,-(sp)
  4455.             dc.w     $AA5E
  4456.         EndM
  4457.     ELSE
  4458.         IMPORT_CFM_FUNCTION    DirDeleteAttributeValue
  4459.     ENDIF
  4460.  
  4461. ;
  4462. ; pascal OSErr DirDeleteAttributeType(DirParamBlockPtr paramBlock, Boolean async)
  4463. ;
  4464.     IF ¬ GENERATINGCFM THEN
  4465.         Macro
  4466.         _DirDeleteAttributeType
  4467.             move.w    #$130,-(sp)
  4468.             dc.w     $AA5E
  4469.         EndM
  4470.     ELSE
  4471.         IMPORT_CFM_FUNCTION    DirDeleteAttributeType
  4472.     ENDIF
  4473.  
  4474. ;
  4475. ; pascal OSErr DirChangeAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4476. ;
  4477.     IF ¬ GENERATINGCFM THEN
  4478.         Macro
  4479.         _DirChangeAttributeValue
  4480.             move.w    #$10D,-(sp)
  4481.             dc.w     $AA5E
  4482.         EndM
  4483.     ELSE
  4484.         IMPORT_CFM_FUNCTION    DirChangeAttributeValue
  4485.     ENDIF
  4486.  
  4487. ;
  4488. ; pascal OSErr DirVerifyAttributeValue(DirParamBlockPtr paramBlock, Boolean async)
  4489. ;
  4490.     IF ¬ GENERATINGCFM THEN
  4491.         Macro
  4492.         _DirVerifyAttributeValue
  4493.             move.w    #$10E,-(sp)
  4494.             dc.w     $AA5E
  4495.         EndM
  4496.     ELSE
  4497.         IMPORT_CFM_FUNCTION    DirVerifyAttributeValue
  4498.     ENDIF
  4499.  
  4500. ;
  4501. ; pascal OSErr DirFindValue(DirParamBlockPtr paramBlock, Boolean async)
  4502. ;
  4503.     IF ¬ GENERATINGCFM THEN
  4504.         Macro
  4505.         _DirFindValue
  4506.             move.w    #$126,-(sp)
  4507.             dc.w     $AA5E
  4508.         EndM
  4509.     ELSE
  4510.         IMPORT_CFM_FUNCTION    DirFindValue
  4511.     ENDIF
  4512.  
  4513. ;
  4514. ; pascal OSErr DirEnumerateAttributeTypesGet(DirParamBlockPtr paramBlock, Boolean async)
  4515. ;
  4516.     IF ¬ GENERATINGCFM THEN
  4517.         Macro
  4518.         _DirEnumerateAttributeTypesGet
  4519.             move.w    #$112,-(sp)
  4520.             dc.w     $AA5E
  4521.         EndM
  4522.     ELSE
  4523.         IMPORT_CFM_FUNCTION    DirEnumerateAttributeTypesGet
  4524.     ENDIF
  4525.  
  4526. ;
  4527. ; pascal OSErr DirEnumerateAttributeTypesParse(DirParamBlockPtr paramBlock, Boolean async)
  4528. ;
  4529.     IF ¬ GENERATINGCFM THEN
  4530.         Macro
  4531.         _DirEnumerateAttributeTypesParse
  4532.             move.w    #$103,-(sp)
  4533.             dc.w     $AA5E
  4534.         EndM
  4535.     ELSE
  4536.         IMPORT_CFM_FUNCTION    DirEnumerateAttributeTypesParse
  4537.     ENDIF
  4538.  
  4539. ;
  4540. ; pascal OSErr DirAddPseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4541. ;
  4542.     IF ¬ GENERATINGCFM THEN
  4543.         Macro
  4544.         _DirAddPseudonym
  4545.             move.w    #$10F,-(sp)
  4546.             dc.w     $AA5E
  4547.         EndM
  4548.     ELSE
  4549.         IMPORT_CFM_FUNCTION    DirAddPseudonym
  4550.     ENDIF
  4551.  
  4552. ;
  4553. ; pascal OSErr DirDeletePseudonym(DirParamBlockPtr paramBlock, Boolean async)
  4554. ;
  4555.     IF ¬ GENERATINGCFM THEN
  4556.         Macro
  4557.         _DirDeletePseudonym
  4558.             move.w    #$110,-(sp)
  4559.             dc.w     $AA5E
  4560.         EndM
  4561.     ELSE
  4562.         IMPORT_CFM_FUNCTION    DirDeletePseudonym
  4563.     ENDIF
  4564.  
  4565. ;
  4566. ; pascal OSErr DirAddAlias(DirParamBlockPtr paramBlock, Boolean async)
  4567. ;
  4568.     IF ¬ GENERATINGCFM THEN
  4569.         Macro
  4570.         _DirAddAlias
  4571.             move.w    #$11C,-(sp)
  4572.             dc.w     $AA5E
  4573.         EndM
  4574.     ELSE
  4575.         IMPORT_CFM_FUNCTION    DirAddAlias
  4576.     ENDIF
  4577.  
  4578. ;
  4579. ; pascal OSErr DirEnumeratePseudonymGet(DirParamBlockPtr paramBlock, Boolean async)
  4580. ;
  4581.     IF ¬ GENERATINGCFM THEN
  4582.         Macro
  4583.         _DirEnumeratePseudonymGet
  4584.             move.w    #$113,-(sp)
  4585.             dc.w     $AA5E
  4586.         EndM
  4587.     ELSE
  4588.         IMPORT_CFM_FUNCTION    DirEnumeratePseudonymGet
  4589.     ENDIF
  4590.  
  4591. ;
  4592. ; pascal OSErr DirEnumeratePseudonymParse(DirParamBlockPtr paramBlock, Boolean async)
  4593. ;
  4594.     IF ¬ GENERATINGCFM THEN
  4595.         Macro
  4596.         _DirEnumeratePseudonymParse
  4597.             move.w    #$104,-(sp)
  4598.             dc.w     $AA5E
  4599.         EndM
  4600.     ELSE
  4601.         IMPORT_CFM_FUNCTION    DirEnumeratePseudonymParse
  4602.     ENDIF
  4603.  
  4604. ;
  4605. ; pascal OSErr DirGetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4606. ;
  4607.     IF ¬ GENERATINGCFM THEN
  4608.         Macro
  4609.         _DirGetNameAndType
  4610.             move.w    #$114,-(sp)
  4611.             dc.w     $AA5E
  4612.         EndM
  4613.     ELSE
  4614.         IMPORT_CFM_FUNCTION    DirGetNameAndType
  4615.     ENDIF
  4616.  
  4617. ;
  4618. ; pascal OSErr DirSetNameAndType(DirParamBlockPtr paramBlock, Boolean async)
  4619. ;
  4620.     IF ¬ GENERATINGCFM THEN
  4621.         Macro
  4622.         _DirSetNameAndType
  4623.             move.w    #$115,-(sp)
  4624.             dc.w     $AA5E
  4625.         EndM
  4626.     ELSE
  4627.         IMPORT_CFM_FUNCTION    DirSetNameAndType
  4628.     ENDIF
  4629.  
  4630. ;
  4631. ; pascal OSErr DirGetRecordMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4632. ;
  4633.     IF ¬ GENERATINGCFM THEN
  4634.         Macro
  4635.         _DirGetRecordMetaInfo
  4636.             move.w    #$116,-(sp)
  4637.             dc.w     $AA5E
  4638.         EndM
  4639.     ELSE
  4640.         IMPORT_CFM_FUNCTION    DirGetRecordMetaInfo
  4641.     ENDIF
  4642.  
  4643. ;
  4644. ; pascal OSErr DirGetDNodeMetaInfo(DirParamBlockPtr paramBlock, Boolean async)
  4645. ;
  4646.     IF ¬ GENERATINGCFM THEN
  4647.         Macro
  4648.         _DirGetDNodeMetaInfo
  4649.             move.w    #$118,-(sp)
  4650.             dc.w     $AA5E
  4651.         EndM
  4652.     ELSE
  4653.         IMPORT_CFM_FUNCTION    DirGetDNodeMetaInfo
  4654.     ENDIF
  4655.  
  4656. ;
  4657. ; pascal OSErr DirGetDirectoryInfo(DirParamBlockPtr paramBlock, Boolean async)
  4658. ;
  4659.     IF ¬ GENERATINGCFM THEN
  4660.         Macro
  4661.         _DirGetDirectoryInfo
  4662.             move.w    #$119,-(sp)
  4663.             dc.w     $AA5E
  4664.         EndM
  4665.     ELSE
  4666.         IMPORT_CFM_FUNCTION    DirGetDirectoryInfo
  4667.     ENDIF
  4668.  
  4669. ;
  4670. ; pascal OSErr DirGetDNodeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4671. ;
  4672.     IF ¬ GENERATINGCFM THEN
  4673.         Macro
  4674.         _DirGetDNodeAccessControlGet
  4675.             move.w    #$12A,-(sp)
  4676.             dc.w     $AA5E
  4677.         EndM
  4678.     ELSE
  4679.         IMPORT_CFM_FUNCTION    DirGetDNodeAccessControlGet
  4680.     ENDIF
  4681.  
  4682. ;
  4683. ; pascal OSErr DirGetDNodeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4684. ;
  4685.     IF ¬ GENERATINGCFM THEN
  4686.         Macro
  4687.         _DirGetDNodeAccessControlParse
  4688.             move.w    #$12F,-(sp)
  4689.             dc.w     $AA5E
  4690.         EndM
  4691.     ELSE
  4692.         IMPORT_CFM_FUNCTION    DirGetDNodeAccessControlParse
  4693.     ENDIF
  4694.  
  4695. ;
  4696. ; pascal OSErr DirGetRecordAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4697. ;
  4698.     IF ¬ GENERATINGCFM THEN
  4699.         Macro
  4700.         _DirGetRecordAccessControlGet
  4701.             move.w    #$12C,-(sp)
  4702.             dc.w     $AA5E
  4703.         EndM
  4704.     ELSE
  4705.         IMPORT_CFM_FUNCTION    DirGetRecordAccessControlGet
  4706.     ENDIF
  4707.  
  4708. ;
  4709. ; pascal OSErr DirGetRecordAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4710. ;
  4711.     IF ¬ GENERATINGCFM THEN
  4712.         Macro
  4713.         _DirGetRecordAccessControlParse
  4714.             move.w    #$134,-(sp)
  4715.             dc.w     $AA5E
  4716.         EndM
  4717.     ELSE
  4718.         IMPORT_CFM_FUNCTION    DirGetRecordAccessControlParse
  4719.     ENDIF
  4720.  
  4721. ;
  4722. ; pascal OSErr DirGetAttributeAccessControlGet(DirParamBlockPtr paramBlock, Boolean async)
  4723. ;
  4724.     IF ¬ GENERATINGCFM THEN
  4725.         Macro
  4726.         _DirGetAttributeAccessControlGet
  4727.             move.w    #$12E,-(sp)
  4728.             dc.w     $AA5E
  4729.         EndM
  4730.     ELSE
  4731.         IMPORT_CFM_FUNCTION    DirGetAttributeAccessControlGet
  4732.     ENDIF
  4733.  
  4734. ;
  4735. ; pascal OSErr DirGetAttributeAccessControlParse(DirParamBlockPtr paramBlock, Boolean async)
  4736. ;
  4737.     IF ¬ GENERATINGCFM THEN
  4738.         Macro
  4739.         _DirGetAttributeAccessControlParse
  4740.             move.w    #$138,-(sp)
  4741.             dc.w     $AA5E
  4742.         EndM
  4743.     ELSE
  4744.         IMPORT_CFM_FUNCTION    DirGetAttributeAccessControlParse
  4745.     ENDIF
  4746.  
  4747. ;
  4748. ; pascal OSErr DirEnumerateDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4749. ;
  4750.     IF ¬ GENERATINGCFM THEN
  4751.         Macro
  4752.         _DirEnumerateDirectoriesGet
  4753.             move.w    #$11A,-(sp)
  4754.             dc.w     $AA5E
  4755.         EndM
  4756.     ELSE
  4757.         IMPORT_CFM_FUNCTION    DirEnumerateDirectoriesGet
  4758.     ENDIF
  4759.  
  4760. ;
  4761. ; pascal OSErr DirEnumerateDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  4762. ;
  4763.     IF ¬ GENERATINGCFM THEN
  4764.         Macro
  4765.         _DirEnumerateDirectoriesParse
  4766.             move.w    #$106,-(sp)
  4767.             dc.w     $AA5E
  4768.         EndM
  4769.     ELSE
  4770.         IMPORT_CFM_FUNCTION    DirEnumerateDirectoriesParse
  4771.     ENDIF
  4772.  
  4773. ;
  4774. ; pascal OSErr DirMapPathNameToDNodeNumber(DirParamBlockPtr paramBlock, Boolean async)
  4775. ;
  4776.     IF ¬ GENERATINGCFM THEN
  4777.         Macro
  4778.         _DirMapPathNameToDNodeNumber
  4779.             move.w    #$122,-(sp)
  4780.             dc.w     $AA5E
  4781.         EndM
  4782.     ELSE
  4783.         IMPORT_CFM_FUNCTION    DirMapPathNameToDNodeNumber
  4784.     ENDIF
  4785.  
  4786. ;
  4787. ; pascal OSErr DirMapDNodeNumberToPathName(DirParamBlockPtr paramBlock, Boolean async)
  4788. ;
  4789.     IF ¬ GENERATINGCFM THEN
  4790.         Macro
  4791.         _DirMapDNodeNumberToPathName
  4792.             move.w    #$123,-(sp)
  4793.             dc.w     $AA5E
  4794.         EndM
  4795.     ELSE
  4796.         IMPORT_CFM_FUNCTION    DirMapDNodeNumberToPathName
  4797.     ENDIF
  4798.  
  4799. ;
  4800. ; pascal OSErr DirGetLocalNetworkSpec(DirParamBlockPtr paramBlock, Boolean async)
  4801. ;
  4802.     IF ¬ GENERATINGCFM THEN
  4803.         Macro
  4804.         _DirGetLocalNetworkSpec
  4805.             move.w    #$124,-(sp)
  4806.             dc.w     $AA5E
  4807.         EndM
  4808.     ELSE
  4809.         IMPORT_CFM_FUNCTION    DirGetLocalNetworkSpec
  4810.     ENDIF
  4811.  
  4812. ;
  4813. ; pascal OSErr DirGetDNodeInfo(DirParamBlockPtr paramBlock, Boolean async)
  4814. ;
  4815.     IF ¬ GENERATINGCFM THEN
  4816.         Macro
  4817.         _DirGetDNodeInfo
  4818.             move.w    #$125,-(sp)
  4819.             dc.w     $AA5E
  4820.         EndM
  4821.     ELSE
  4822.         IMPORT_CFM_FUNCTION    DirGetDNodeInfo
  4823.     ENDIF
  4824.  
  4825. ;  Trap Dispatchers for Personal Catalog and CSAM Extensions 
  4826. ;
  4827. ; pascal OSErr DirCreatePersonalDirectory(DirParamBlockPtr paramBlock)
  4828. ;
  4829.     IF ¬ GENERATINGCFM THEN
  4830.         Macro
  4831.         _DirCreatePersonalDirectory
  4832.             moveq    #0,d0
  4833.             dc.w     $1F00
  4834.             move.w    #$11F,-(sp)
  4835.             dc.w     $AA5E
  4836.         EndM
  4837.     ELSE
  4838.         IMPORT_CFM_FUNCTION    DirCreatePersonalDirectory
  4839.     ENDIF
  4840.  
  4841. ;
  4842. ; pascal OSErr DirOpenPersonalDirectory(DirParamBlockPtr paramBlock)
  4843. ;
  4844.     IF ¬ GENERATINGCFM THEN
  4845.         Macro
  4846.         _DirOpenPersonalDirectory
  4847.             moveq    #0,d0
  4848.             dc.w     $1F00
  4849.             move.w    #$11E,-(sp)
  4850.             dc.w     $AA5E
  4851.         EndM
  4852.     ELSE
  4853.         IMPORT_CFM_FUNCTION    DirOpenPersonalDirectory
  4854.     ENDIF
  4855.  
  4856. ;
  4857. ; pascal OSErr DirClosePersonalDirectory(DirParamBlockPtr paramBlock)
  4858. ;
  4859.     IF ¬ GENERATINGCFM THEN
  4860.         Macro
  4861.         _DirClosePersonalDirectory
  4862.             moveq    #0,d0
  4863.             dc.w     $1F00
  4864.             move.w    #$131,-(sp)
  4865.             dc.w     $AA5E
  4866.         EndM
  4867.     ELSE
  4868.         IMPORT_CFM_FUNCTION    DirClosePersonalDirectory
  4869.     ENDIF
  4870.  
  4871. ;
  4872. ; pascal OSErr DirMakePersonalDirectoryRLI(DirParamBlockPtr paramBlock)
  4873. ;
  4874.     IF ¬ GENERATINGCFM THEN
  4875.         Macro
  4876.         _DirMakePersonalDirectoryRLI
  4877.             moveq    #0,d0
  4878.             dc.w     $1F00
  4879.             move.w    #$132,-(sp)
  4880.             dc.w     $AA5E
  4881.         EndM
  4882.     ELSE
  4883.         IMPORT_CFM_FUNCTION    DirMakePersonalDirectoryRLI
  4884.     ENDIF
  4885.  
  4886. ;
  4887. ; pascal OSErr DirAddDSAM(DirParamBlockPtr paramBlock)
  4888. ;
  4889.     IF ¬ GENERATINGCFM THEN
  4890.         Macro
  4891.         _DirAddDSAM
  4892.             moveq    #0,d0
  4893.             dc.w     $1F00
  4894.             move.w    #$11D,-(sp)
  4895.             dc.w     $AA5E
  4896.         EndM
  4897.     ELSE
  4898.         IMPORT_CFM_FUNCTION    DirAddDSAM
  4899.     ENDIF
  4900.  
  4901. ;
  4902. ; pascal OSErr DirInstantiateDSAM(DirParamBlockPtr paramBlock)
  4903. ;
  4904.     IF ¬ GENERATINGCFM THEN
  4905.         Macro
  4906.         _DirInstantiateDSAM
  4907.             moveq    #0,d0
  4908.             dc.w     $1F00
  4909.             move.w    #$127,-(sp)
  4910.             dc.w     $AA5E
  4911.         EndM
  4912.     ELSE
  4913.         IMPORT_CFM_FUNCTION    DirInstantiateDSAM
  4914.     ENDIF
  4915.  
  4916. ;
  4917. ; pascal OSErr DirRemoveDSAM(DirParamBlockPtr paramBlock)
  4918. ;
  4919.     IF ¬ GENERATINGCFM THEN
  4920.         Macro
  4921.         _DirRemoveDSAM
  4922.             moveq    #0,d0
  4923.             dc.w     $1F00
  4924.             move.w    #$120,-(sp)
  4925.             dc.w     $AA5E
  4926.         EndM
  4927.     ELSE
  4928.         IMPORT_CFM_FUNCTION    DirRemoveDSAM
  4929.     ENDIF
  4930.  
  4931. ;
  4932. ; pascal OSErr DirAddDSAMDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4933. ;
  4934.     IF ¬ GENERATINGCFM THEN
  4935.         Macro
  4936.         _DirAddDSAMDirectory
  4937.             move.w    #$133,-(sp)
  4938.             dc.w     $AA5E
  4939.         EndM
  4940.     ELSE
  4941.         IMPORT_CFM_FUNCTION    DirAddDSAMDirectory
  4942.     ENDIF
  4943.  
  4944. ;
  4945. ; pascal OSErr DirGetExtendedDirectoriesInfo(DirParamBlockPtr paramBlock, Boolean async)
  4946. ;
  4947.     IF ¬ GENERATINGCFM THEN
  4948.         Macro
  4949.         _DirGetExtendedDirectoriesInfo
  4950.             move.w    #$136,-(sp)
  4951.             dc.w     $AA5E
  4952.         EndM
  4953.     ELSE
  4954.         IMPORT_CFM_FUNCTION    DirGetExtendedDirectoriesInfo
  4955.     ENDIF
  4956.  
  4957. ;
  4958. ; pascal OSErr DirGetDirectoryIcon(DirParamBlockPtr paramBlock, Boolean async)
  4959. ;
  4960.     IF ¬ GENERATINGCFM THEN
  4961.         Macro
  4962.         _DirGetDirectoryIcon
  4963.             move.w    #$121,-(sp)
  4964.             dc.w     $AA5E
  4965.         EndM
  4966.     ELSE
  4967.         IMPORT_CFM_FUNCTION    DirGetDirectoryIcon
  4968.     ENDIF
  4969.  
  4970. ;
  4971. ; pascal OSErr DirAddADAPDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4972. ;
  4973.     IF ¬ GENERATINGCFM THEN
  4974.         Macro
  4975.         _DirAddADAPDirectory
  4976.             move.w    #$137,-(sp)
  4977.             dc.w     $AA5E
  4978.         EndM
  4979.     ELSE
  4980.         IMPORT_CFM_FUNCTION    DirAddADAPDirectory
  4981.     ENDIF
  4982.  
  4983. ;
  4984. ; pascal OSErr DirRemoveDirectory(DirParamBlockPtr paramBlock, Boolean async)
  4985. ;
  4986.     IF ¬ GENERATINGCFM THEN
  4987.         Macro
  4988.         _DirRemoveDirectory
  4989.             move.w    #$135,-(sp)
  4990.             dc.w     $AA5E
  4991.         EndM
  4992.     ELSE
  4993.         IMPORT_CFM_FUNCTION    DirRemoveDirectory
  4994.     ENDIF
  4995.  
  4996. ;
  4997. ; pascal OSErr DirNetSearchADAPDirectoriesGet(DirParamBlockPtr paramBlock, Boolean async)
  4998. ;
  4999.     IF ¬ GENERATINGCFM THEN
  5000.         Macro
  5001.         _DirNetSearchADAPDirectoriesGet
  5002.             move.w    #$108,-(sp)
  5003.             dc.w     $AA5E
  5004.         EndM
  5005.     ELSE
  5006.         IMPORT_CFM_FUNCTION    DirNetSearchADAPDirectoriesGet
  5007.     ENDIF
  5008.  
  5009. ;
  5010. ; pascal OSErr DirNetSearchADAPDirectoriesParse(DirParamBlockPtr paramBlock, Boolean async)
  5011. ;
  5012.     IF ¬ GENERATINGCFM THEN
  5013.         Macro
  5014.         _DirNetSearchADAPDirectoriesParse
  5015.             move.w    #$105,-(sp)
  5016.             dc.w     $AA5E
  5017.         EndM
  5018.     ELSE
  5019.         IMPORT_CFM_FUNCTION    DirNetSearchADAPDirectoriesParse
  5020.     ENDIF
  5021.  
  5022. ;
  5023. ; pascal OSErr DirFindADAPDirectoryByNetSearch(DirParamBlockPtr paramBlock, Boolean async)
  5024. ;
  5025.     IF ¬ GENERATINGCFM THEN
  5026.         Macro
  5027.         _DirFindADAPDirectoryByNetSearch
  5028.             move.w    #$107,-(sp)
  5029.             dc.w     $AA5E
  5030.         EndM
  5031.     ELSE
  5032.         IMPORT_CFM_FUNCTION    DirFindADAPDirectoryByNetSearch
  5033.     ENDIF
  5034.  
  5035. ;
  5036. ; pascal OSErr DirGetOCESetupRefNum(DirParamBlockPtr paramBlock, Boolean async)
  5037. ;
  5038.     IF ¬ GENERATINGCFM THEN
  5039.         Macro
  5040.         _DirGetOCESetupRefNum
  5041.             move.w    #$128,-(sp)
  5042.             dc.w     $AA5E
  5043.         EndM
  5044.     ELSE
  5045.         IMPORT_CFM_FUNCTION    DirGetOCESetupRefNum
  5046.     ENDIF
  5047.  
  5048. ;
  5049. ; pascal OSErr DirAbort(DirParamBlockPtr paramBlock)
  5050. ;
  5051.     IF ¬ GENERATINGCFM THEN
  5052.         Macro
  5053.         _DirAbort
  5054.             moveq    #0,d0
  5055.             dc.w     $1F00
  5056.             move.w    #$11B,-(sp)
  5057.             dc.w     $AA5E
  5058.         EndM
  5059.     ELSE
  5060.         IMPORT_CFM_FUNCTION    DirAbort
  5061.     ENDIF
  5062.  
  5063. ;
  5064. ; pascal OSErr OCESetupAddDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  5065. ;
  5066.     IF ¬ GENERATINGCFM THEN
  5067.         Macro
  5068.         _OCESetupAddDirectoryInfo
  5069.             move.w    #$219,-(sp)
  5070.             dc.w     $AA5E
  5071.         EndM
  5072.     ELSE
  5073.         IMPORT_CFM_FUNCTION    OCESetupAddDirectoryInfo
  5074.     ENDIF
  5075.  
  5076. ;
  5077. ; pascal OSErr OCESetupChangeDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  5078. ;
  5079.     IF ¬ GENERATINGCFM THEN
  5080.         Macro
  5081.         _OCESetupChangeDirectoryInfo
  5082.             move.w    #$21B,-(sp)
  5083.             dc.w     $AA5E
  5084.         EndM
  5085.     ELSE
  5086.         IMPORT_CFM_FUNCTION    OCESetupChangeDirectoryInfo
  5087.     ENDIF
  5088.  
  5089. ;
  5090. ; pascal OSErr OCESetupRemoveDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  5091. ;
  5092.     IF ¬ GENERATINGCFM THEN
  5093.         Macro
  5094.         _OCESetupRemoveDirectoryInfo
  5095.             move.w    #$20D,-(sp)
  5096.             dc.w     $AA5E
  5097.         EndM
  5098.     ELSE
  5099.         IMPORT_CFM_FUNCTION    OCESetupRemoveDirectoryInfo
  5100.     ENDIF
  5101.  
  5102. ;
  5103. ; pascal OSErr OCESetupGetDirectoryInfo(AuthParamBlockPtr paramBlock, Boolean async)
  5104. ;
  5105.     IF ¬ GENERATINGCFM THEN
  5106.         Macro
  5107.         _OCESetupGetDirectoryInfo
  5108.             move.w    #$20E,-(sp)
  5109.             dc.w     $AA5E
  5110.         EndM
  5111.     ELSE
  5112.         IMPORT_CFM_FUNCTION    OCESetupGetDirectoryInfo
  5113.     ENDIF
  5114.  
  5115.     ENDIF ; __OCEAUTHDIR__
  5116.